对于给定的 IAM 用户,我只想允许该用户访问我们账户中的一个特定存储桶(称之为foo-bucket
(。
但是,这似乎具有禁用对我们帐户之外的任何公共存储桶的访问的效果,这不是我想要的。我希望用户仍然可以访问另一个账户中的任何公有存储桶,例如broad-references
.我当然可以明确授予对特定公共存储桶的访问权限,但世界上有无数的公共存储桶,我不想限制对其中任何一个的访问。
这是现有策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "economycloud",
"Action": [
"s3:List*",
"s3:Get*",
"s3:DeleteObject*",
"s3:Abort*",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectTagging",
"s3:RestoreObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::foo-bucket/*",
"arn:aws:s3:::foo-bucket"
]
},
{
"Sid": "AllowListing",
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
有人可以建议执行以下操作的 IAM 策略吗:
限制访问,- 以便用户只能访问账户中的此特定存储桶,如上述策略所示,但
- 可以访问任何其他账户中的任何公有存储桶。
Dan,
这是您实现此目的的方法:
- 显式拒绝用户访问特定账户中除该特定存储桶 (foo-bucket( 之外的所有存储桶。
- 显式允许用户访问该特定存储桶 (foo-bucket(。
- 显式允许来自所有账户的存储桶。