首页 文章

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

提问于
浏览
4

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

2 回答

  • 10

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

    通过考虑以下因素来决定使用哪个:(如John Hanley所述below,可以申请多种类型,并且适用 most 限制性/最低权限许可 . )

    如果您想要使用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/

  • 3

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

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

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

相关问题