1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 你好,
如果我理解正确,您希望仅在请求者使用临时凭证时允许S3操作。
在这种情况下,您可以使用“Null”条件运算符来检查“aws:TokenIssueTime”全局条件键的存在;正如文档所述,“如果用户正在使用临时凭据,则键aws:TokenIssueTime存在并具有值。” 文档中也提供了一个例子,“用户在使用Amazon EC2 API时必须不使用临时凭据(该键必须不存在)。”(这与您的情况相反)。
如果您计划将策略附加到IAM用户,则应该是这样的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "my_s3_bucket_arn/*",
"Condition": {
"Null": {
"aws:TokenIssueTime": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "my_s3_bucket_arn",
"Condition": {
"Null": {
"aws:TokenIssueTime": "false"
}
}
}
]
}
注意:IAM身份基础策略(附加到IAM用户、组或角色)没有“Principal”元素。
上述策略检查“aws:TokenIssueTime”是否不是空,这意味着实体应该使用临时凭证;在这种情况下,如果用户使用“GetSessionToken”或假定角色获得临时凭证,则可以调用允许的S3 API操作。
我希望这回答了您的问题!
相关内容
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 8 个月前