amazon-web-services - AWS S3 - 拒绝访问;Block all 关闭,ACL 是所有人,Policy 是允许所有人
问题描述
我有一个未选中阻止所有公共访问的存储桶,ACL 设置为允许所有人进行所有列表/写入/读取,并且从 S3 生成的有效策略具有 s3:* 用于每个文档的有效资源名称和通配符。 .. 缓存已经过双重检查,无法弄清楚 AWS S3 发生了什么。
来源:https ://forums.aws.amazon.com/thread.jspa?threadID=316341
解决方案
您似乎想要创建一个“公共”存储桶,这意味着只要知道对象的名称,任何人都可以访问存储桶中的内容。
要做到这一点:
- 关闭“阻止公共访问”
- 创建一个像上面显示的那样的存储桶策略
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
这足以让所有内容都可以访问。
要测试它是否正常工作,您可以使用 Amazon S3 管理控制台。在存储桶中选择一个对象,然后使用对象 URL访问该对象。这将避免任何输入错误并尝试匿名访问对象(与添加私人访问签名的“打开”按钮相反)。
如果它不适用于您的存储桶,我建议您通过创建一个新存储桶并按照上述步骤将其公开来进行实验。如果它有效,那么您可以比较两个存储桶之间的差异。
阻止公共访问可能已在帐户级别应用。
推荐阅读
- python - 将文本文件中的重复数字打印到不同的文件-python?
- r - R中的gstat - 变异函数截止距离不适用于大型网格数据集的较大指定距离
- excel - 在 Excel 中运行报表后没有可视内容
- php - 在数据库中存储数组
- c# - 在 Xamarin 和 MVVM 中绑定 ObservableCollection Listview 时不刷新特定标签
- javascript - 边框底部的 CSS 转换延迟
- reporting-services - #SSRS输出中的计算值错误
- angularjs - 通过 MEAN 架构上的 Datatable 配置搜索字段
- javascript - 如何在 React 中的现有 DOM 中追加或插入 HTML 元素
- sql - sql teradata 过滤日期 - 数据库版本 Teradata 15.10.06.02 和提供程序版本 Teradata.Net 15.11.0.0