【问题标题】:AWS S3 Bucket: what is the difference between "Block public access" and a blank Bucket policy file with no "allow" specified?AWS S3 存储桶:“阻止公共访问”和未指定“允许”的空白存储桶策略文件有什么区别?
【发布时间】:2022-01-25 03:09:46
【问题描述】:

我对 S3 存储桶策略设置感到非常困惑。

您可以在此处选择阻止所有公共访问。

但是,如果您取消选择这些选项,以便公众访问存储桶和对象,您仍然需要在“存储桶策略”部分中编辑/添加策略:

您需要将上述政策修改为以下内容:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myapp/*"
        },
        {
            "Sid": "2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity 111111111"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myapp/*"
        }
    ]
}

如果不指定"Effect": "Allow", "Principal": "*",,则默认策略为“阻止”。

那么,如果 public 已经被默认屏蔽了,为什么还需要“Block public access”部分呢?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    阻止公共访问功能是对存储桶的另一层保护。 Amazon S3 存储桶和对象是私有的,默认情况下受保护,可以选择使用访问控制列表 (ACL) 和存储桶策略来授予对其他 AWS 账户或公共(匿名)请求的访问权限。

    在发布阻止公共访问功能之前,由于配置错误,经常会看到更多以存储在 S3 上的数据为中心的数据泄漏和破坏。这不是亚马逊的错,是公司的错。

    因此,如果您想让存储桶或对象在其中公开访问,首先您需要禁用这个额外的安全层(禁用它并不意味着存储桶或对象是公开的,只是意味着您可以将它们公开)然后通过 ACL、存储桶策略等将它们公开。


    参考:

    Amazon S3 Block Public Access – Another Layer of Protection for Your Accounts and Buckets

    【讨论】:

    • 很好解释。谢谢,现在很清楚了。如果他们能把这个简单的解释放在文档中会很有帮助。
    • S3 Block Public Access 文档很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 2016-11-16
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多