【发布时间】:2017-05-18 20:24:26
【问题描述】:
我有一个 IAM 角色要附加到微服务,以便根据用户代理限制 S3 文件夹访问。微服务父账号和bucket owner相同。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucket-test/service/${aws:useragent}/*"
]
},
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucket-test"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"service/${aws:useragent}/*"
]
}
}
}
]
}
同一个 S3 存储桶具有默认 ACL,其中帐户对对象和权限具有 R/W。
鉴于 ACL 和 IAM 政策,我不明白该政策如何评估。例如,具有上述角色的用户使用用户代理micro-a 向bucket-test/service/micro-b/new_object 发出put_object 请求。这是明确的还是隐含的否认?为什么?
【问题讨论】:
-
我查看了这些文档。仍然没有回答它是显式/隐式拒绝,还是允许以及为什么。
-
政策绝不是隐含的东西。根据定义,策略总是显式。评估所有策略。如果有另一个策略允许该策略允许的超集,则该策略没有任何作用。唯一隐含的是在没有适用的显式允许的情况下存在的默认隐式拒绝。
标签: amazon-s3 amazon-iam