首页 > 解决方案 > AWS S3 - 拒绝访问;Block all 关闭,ACL 是所有人,Policy 是允许所有人

问题描述

我有一个未选中阻止所有公共访问的存储桶,ACL 设置为允许所有人进行所有列表/写入/读取,并且从 S3 生成的有效策略具有 s3:* 用于每个文档的有效资源名称和通配符。 .. 缓存已经过双重检查,无法弄清楚 AWS S3 发生了什么。

来源:https ://forums.aws.amazon.com/thread.jspa?threadID=316341

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

标签: amazon-web-servicesamazon-s3

解决方案


您似乎想要创建一个“公共”存储桶,这意味着只要知道对象的名称,任何人都可以访问存储桶中的内容。

要做到这一点:

  • 关闭“阻止公共访问”
  • 创建一个像上面显示的那样的存储桶策略
{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket-name/*"
        }
    ]
}

这足以让所有内容都可以访问。

要测试它是否正常工作,您可以使用 Amazon S3 管理控制台。在存储桶中选择一个对象,然后使用对象 URL访问该对象。这将避免任何输入错误并尝试匿名访问对象(与添加私人访问签名的“打开”按钮相反)。

如果它不适用于您的存储桶,我建议您通过创建一个新存储桶并按照上述步骤将其公开来进行实验。如果它有效,那么您可以比较两个存储桶之间的差异。

阻止公共访问可能已在帐户级别应用。


推荐阅读