【问题标题】:In AWS, are S3 and IAM permissions different?在 AWS 中,S3 和 IAM 权限是否不同?
【发布时间】:2021-01-18 15:41:29
【问题描述】:

在 AWS 中创建 S3 存储桶后 - 我想了解应如何提供对 S3 存储桶的读取和写入访问权限?

我认为 IAM 用户权限和 S3 存储桶权限是不同的。我的意思是 - 一个在 AWS 上没有权限的 IAM 用户可以通过将他添加到 S3 存储桶的权限以进行相应的读取或读+写来获得对 S3 存储桶的访问权限。并且 S3 权限与 IAM 权限无关>

以上理解正确吗?以上如有错误请指正并详细说明?

【问题讨论】:

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


    【解决方案1】:

    而 S3 权限与 IAM 权限无关

    事实并非如此。存储桶及其对象的有效权限是基于 IAM 身份的权限(即附加到 IAM 用户、角色、组的权限)加上存储桶策略以及其他权限的联合( SCP、IAM 边界),为简单起见,我没有提及。

    默认情况下,存储桶和对象是私有的。您可以使用 IAM 策略、存储桶策略或两者同时使用 Allow 访问它们。有效权限将是所有这些单独权限的联合。这意味着您可以使用存储桶策略来授予对 object1 的访问权限,并使用 IAM 策略来向同一 IAM 用户授予对 object2 的访问权限。所述用户将能够访问两个对象

    当有Deny 时,此行为会发生变化,因为拒绝总是获胜。因此,IAM 用户可以在给定存储桶的 IAM 策略中拥有Allow,但该存储桶可以拥有该用户的Deny。结果将始终为Deny

    随后,所有这些都意味着桶策略和 IAM 权限应该一起考虑并相互关联。因此,您不能说“S3 权限与 IAM 权限无关”。

    【讨论】:

      【解决方案2】:

      IAM 用户 默认没有权限。如果他们希望通过经过身份验证的 API 调用执行任何操作,则必须授予他们这样做的权限。

      即使 Amazon S3 存储桶策略授予 IAM 用户访问权限,他们也无法访问 Amazon S3 中的内容,除非他们的 IAM 权限允许他们进行关联的 API 调用(例如 ListBucketsGetObject)。

      请注意,我指的是经过身份验证的 API 调用不是通过网络浏览器 URL 的匿名 HTTP 请求。

      Bucket Policy 可以通过引用 "Principal": "*" 授予“公共访问权限”(这意味着即使未经身份验证的用户也可以通过 URL 检索内容),或者它可以授予特定 IAM 用户和IAM 角色。但是,如果该用户/角色无权调用任何 S3 操作,则他们无法访问存储桶。

      来自 IAM 或存储桶策略的 Deny 策略优先于 Allow。因此,有权访问存储桶的 IAM 用户可能会被存储桶策略拒绝,反之亦然。

      【讨论】:

      • 在不触及 S3 存储桶权限的情况下,如何授予 IAM 用户对存储桶的完全访问权限,例如 big-bucket。在 S3 中创建存储桶 - big-bucket 时,是否还会创建任何 IAM 权限(特定于 big-bucket),使用这些权限可以授予 IAM 用户访问权限。
      • 感谢您提及 - ListBucketsGetObject 权限,这些是通用的,并非特定于存储桶。是否有任何其他/更通用的权限(与 S3 相关)值得了解。
      • 存储桶策略仅适用于它们所附加的存储桶。 IAM 权限也可以限制为特定的存储桶。见:Bucket Policy Examples - Amazon Simple Storage Service
      【解决方案3】:

      在 AWS IAM 中,可以生成所有策略并将它们分配给用户和/或角色。 作为一般规则,AWS 建议使用 S3 存储桶策略或 IAM 策略进行访问控制。

      “S3 ACL 是一种早于 IAM 的传统访问控制机制。但是,如果您已经使用 S3 ACL 并且发现它们已经足够了, 无需更改。”

      默认情况下,用户/角色承担由代表“服务控制策略”的 SCP 提供的策略。它与您可能面临的政策非常相似,但这是由帐户级别/或组织级别提供的。

      在生成和假设策略的所有选项中,有一个逻辑“和”,这意味着如果策略中至少有 1 个“拒绝”,它将限制用户/角色对特定存储桶的访问,例如在你的情况下

      【讨论】:

        猜你喜欢
        • 2015-09-09
        • 2021-02-16
        • 2012-02-22
        • 2021-08-13
        • 2023-03-13
        • 1970-01-01
        • 2020-10-08
        • 2018-12-06
        • 2019-04-18
        相关资源
        最近更新 更多