【问题标题】:AWS IAM Permissions for GetObjects in ONE S3 Bucket not working一个 S3 存储桶中 GetObjects 的 AWS IAM 权限不起作用
【发布时间】:2015-08-03 17:32:20
【问题描述】:

我正在尝试为用户编写一个权限,使其能够访问一个特定存储桶中的对象。

我目前有:

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

但用户仍然可以访问我的所有其他存储桶。请注意,我的其他存储桶没有政策……我认为这无关紧要。我只希望允许该用户的 IAM 进入该特定存储桶。

【问题讨论】:

  • 您的其他存储桶有哪些权限(在 S3 控制台中的存储桶属性下)?默认情况下,存储桶对所有者的访问权限是有限的,因此除非您已打开权限,否则其他用户应该有权访问。
  • 我的所有其他存储桶都只有权限授予者列表中的所有者。但我认为,因为我对那个 IAM 用户说“您只能访问这个存储桶”,他将无法访问其他存储桶......
  • 存储桶是否也需要策略?我认为既然我声明我的 IAM 用户只能访问存储桶,那么即使这些其他存储桶没有存储桶策略,它仍然无法访问其他存储桶......
  • 是的,没错,他应该只能访问您在附加到该用户的 IAM 策略中指定的存储桶。在 IAM 控制台中,单击该用户,然后单击权限选项卡。您只看到您提到的政策吗?您在那里看到任何其他组或用户政策吗?
  • 不,存储桶不需要策略。

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


【解决方案1】:

Amazon S3 是最复杂的服务之一,因为它提供了三种不同的权限机制,可以同时应用,参见例如IAM policies and Bucket Policies and ACLs! Oh My! (Controlling Access to S3 Resources) 对主题进行了很好的描述,特别是授权如何与多种访问控制机制一起工作?

每当 AWS 委托人向 S3 发出请求时,授权决定取决于所有 IAM 策略、S3 存储桶策略和适用的 S3 ACL 的联合

您遇到的行为表明某处存在一些错误配置,即您可能允许以您可能不知道的级别访问存储桶 - 仅就 Amazon IAM 而言,IAM Policy Simulator 是调试此类情况的绝佳工具,我强烈建议先在那里验证您的配置。

然而,虽然这对于大多数服务来说已经足够了,但它并没有涵盖上面概述的 S3 的其他两种权限机制,但至少已经隔离了分析。

【讨论】:

    【解决方案2】:

    请尝试以下 IAM 用户政策,它允许完全访问仅单个存储桶

    请注意,“列出所有存储桶”是必需的,但用户将无法访问您在策略中指定的存储桶以外的其他存储桶。

    {
       "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket",
            "s3:GetBucketLocation"
         ],
         "Resource":"arn:aws:s3:::examplebucket"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject"
         ],
         "Resource":"arn:aws:s3:::examplebucket/*"
      }
       ]
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-22
      • 2020-08-22
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多