创建IAM策略以列出和访问单个存储桶

时间:2015-12-02 23:29:22

标签: amazon-web-services amazon-s3 amazon-iam

我创建了以下IAM政策:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::bucketname",
        "arn:aws:s3:::bucketname/*"
      ]
    }
  ]
}

这是因为他们可以访问的唯一存储桶是正确的,但我想要做的是设置它,以便在进入存储桶列表时显示的唯一存储桶是他们有权访问的存储桶。

我尝试将listallmybuckets操作中的ARN更改为存储桶本身的ARN,但这只是提供了一个"无法访问"进入存储桶列表时出错

如何将其更改为仅列出他们在存储桶列表中有权访问的存储区?

1 个答案:

答案 0 :(得分:0)

S3存储桶由与AWS绑定的特定规范用户ID 拥有 帐户。在IAM策略中给委托人s3:ListAllMyBuckets时,他们 有权枚举规范用户ID 所拥有的所有存储桶, 提供其凭证的arn(即第五段的帐号 arn中的用户或具有许可权限的角色。

这意味着对于给定的帐户,所有本金都具有 ListAllMyBuckets用于帐户中的所有存储桶,或者根本不使用。

使用 AWS组织,创建专用帐户相对容易,并且 然后向存储桶(或存储桶集)提供凭据(或跨帐户访问权限) 与所有其他人隔离;这可能会模拟受限的刊登行为 OP正在要求。