繁体   English   中英

AWS S3 存储桶:“阻止公共访问”和未指定“允许”的空白存储桶策略文件有什么区别?

[英]AWS S3 Bucket: what is the difference between "Block public access" and a blank Bucket policy file with no "allow" specified?

我对 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": "*", ,则默认策略为 "block"。

那么,如果默认情况下已经阻止了公共,为什么我们需要“阻止公共访问”部分?

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

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

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


参考:

Amazon S3 阻止公共访问 – 为您的账户和存储桶提供另一层保护

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM