只需创建一个自定义 IAM 组策略来限制对特定存储桶的访问
如...
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListAllMyBuckets"],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource":
[
"arn:aws:s3:::my.bucket",
"arn:aws:s3:::my.bucket/*"
]
}
]
}
第一个操作s3:ListAllMyBuckets
允许用户列出所有存储桶。否则,当用户登录时,他们的 S3 客户端将不会在存储桶列表中显示任何内容。
第二个操作向名为“my.bucket”的存储桶的用户授予完整的 S3 权限。这意味着他们可以自由地在存储桶中创建/列出/删除存储桶资源和用户 ACL。
授予 s3:* 访问权限非常宽松。如果您想对存储桶进行更严格的控制,只需查找您要授予的相关操作并将它们添加为列表。
"Action": "s3:Lists3:GetObject, s3:PutObject, s3:DeleteObject"
我建议您将此策略创建为一个组(例如 my.bucket_User),这样您就可以将其分配给需要访问此存储桶的每个用户,而无需任何不必要的复制粘贴。