S3存储桶策略与访问控制列表

时间:2017-12-14 14:18:12

标签: amazon-web-services amazon-s3

AWS website上,它建议使用以下存储桶策略将S3存储桶公开:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::example-bucket/*"
            ]
        }
    ]
}

它之间的区别是什么,只是通过访问控制列表设置它?

enter image description here

3 个答案:

答案 0 :(得分:15)

底线:1)访问控制列表(ACL)是遗留的(但不是已弃用),2)AWS建议使用bucket / IAM策略,3)ACL控制存储桶和对象,策略仅在存储桶中水平。

通过考虑以下因素来决定使用哪个:(如John Hanley所述below,可以应用多种类型,并且最多限制性/最低权限权限将适用。)< / p>

如果您要执行以下操作,请使用S3存储桶策略:

  • 在S3环境中控制访问
  • 了解可以访问存储桶
  • 保持最低20kb政策规模

如果您愿意,请使用IAM政策:

  • 在IAM环境中控制访问权限,可能不仅仅是存储桶
  • 管理大量存储桶
  • 了解用户可以在 AWS
  • 中执行的操作
  • 最大保留2-10kb政策规模,具体取决于用户/群组/角色

如果您想要使用ACL:

  • 控制对存储桶和对象的访问
  • 超过20kb的政策规模
  • 继续使用ACL,您对此感到满意

https://aws.amazon.com/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/

答案 1 :(得分:4)

如果要对存储桶中的各个对象实施细粒度控制,请使用ACL。如果要实现全局控制,例如将整个存储桶公开,请使用策略。

ACL是S3中的第一个授权机制。存储桶策略是较新的方法,也是几乎所有AWS服务使用的方法。策略可以实现非常复杂的规则和权限,ACL很简单(它们具有ALLOW但没有DENY)。要管理S3,您需要对两者都有充分的了解。

当您实施ACL和策略时,会发生真正的复杂情况。最终权限集将是两者的最小权限联盟。

答案 2 :(得分:4)

AWS概述了不同访问策略选项here

的特定用例

他们布置...

何时使用对象ACL

  • 对象不属于存储桶所有者
  • 权限因对象而异

何时使用存储桶ACL

  • 向Amazon S3 Log Delivery组授予写权限,以将访问日志对象写入存储桶

何时使用存储桶策略

  • 管理所有Amazon S3权限的跨账户权限(ACL只能读取,写入,读取ACL,写入ACL和“完全控制”-所有先前的权限)

何时使用用户策略

  • 如果您要通过将策略附加到用户(或用户组)而不是使用存储桶策略在存储桶级别上单独管理权限,请