我正在尝试找出一个IAM用户/密钥的基本权限集,必须只能访问S3中的一个存储桶 - 只能对单个存储桶进行读/写访问。
使这项工作所需的最低权限是什么?我在S3的IAM策略生成器中选择了所有选项,除了CreateBucket
和DeleteBucket
之外,在桶上启用了所有权限。我还创建了一组特定于该用户的密钥。
当我尝试使用这些凭据访问存储桶时,即使ListAllMyBuckets
属性已启用,我也会遇到列出存储桶的问题。
任何人都有设置像这样的基本存储桶配置的经验吗?好像很常见...
答案 0 :(得分:12)
Example Policies for Amazon S3涵盖与您类似或相关的各种用例 - 特别是您可能希望将示例1:允许每个用户在Amazon S3中拥有主目录与示例2:允许用户仅列出公司存储桶中其主目录中的对象 - 您只需调整Resource
来定位您的存储桶根目录,即替换/home/bob/*
与*
。
请注意示例2 有助于ListBucket,operation on a bucket 返回有关存储桶中某些项目的信息,而ListAllMyBuckets是operation on the service,返回请求发件人拥有的所有存储桶的列表,因此可能不适用于您的用例(请参阅我对有关说明的说明)后者)。
答案 1 :(得分:0)
这将允许列出所有桶,假设您没有在其他地方拒绝它(我99%肯定拒绝语句首先被评估;订单与IAM策略无关):
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "*"
}
允许你想要的任何你想要的东西(不要忘记/ *):
{
"Effect": "Allow",
"Action": [
"s3:<Put your actions here; cherry pick from the AWS documentation>"
],
"Resource": [
"arn:aws:s3:::<Bucket name here>",
"arn:aws:s3:::<Bucket name here>/*"
]
}