【发布时间】:2022-01-20 13:04:08
【问题描述】:
我正在尝试弄清楚如何配置 AWS S3 存储桶以便我可以上传到它。我按照this tutorial 中的说明进行操作,但仍然收到一条错误消息:
访问“https://s3.ap-southeast-2.amazonaws.com/”从 来源 'http://localhost:3000' 已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。如果不透明的响应满足您的需求,请设置请求的 模式为“no-cors”以获取禁用 CORS 的资源。
我有一个带有以下 CORS 政策的存储桶(在开发中):
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
我的存储桶策略如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:List*",
"s3:Get*"
],
// 注意:我也尝试使用通配符 '*' 来允许所有 操作,但我收到与上图相同的错误消息
"Resource": [
"arn:aws:s3:::[MY_BUCKET_NAME]",
"arn:aws:s3:::[MY_BUCKET_NAME]/*"
]
}
]
}
我可以看到 AWS 策略有一个额外的 ACL 部分,其中包含勾选列表和读取选项,但是写入按钮显示为灰色,并带有警告不要使用它以允许所有人写入。我勾选了它们以允许所有人公开访问以列出和阅读(我不知道如何编辑灰色的写入选项)。我处于开发模式,想找到一种方法来测试连接是否可以正常工作,所以想写。即使我尝试这样做,我也会收到与上面发布的相同的错误。
我正在寻找有关如何连接到 AWS S3 存储桶的最新说明。似乎配置要求的变化比创建博客教程的速度更快。许多关于 SO 的答案不再映射到 AWS S3 配置文件中的配置设置。
【问题讨论】:
-
您是否要允许公开上传您的存储桶(任何人都可以在没有身份验证的情况下上传)?这是一个安全风险,因为如果有人知道您的存储桶名称(这并不难),他们可以上传自己的任何对象
-
目前,我只是在开发中,并试图看看它是如何工作的。我将接受任何安全风险以了解如何配置 AWS 端。一旦我能看到它是如何工作的,我会重新添加策略约束。目前,我还停留在第一步。
标签: amazon-web-services amazon-s3 cors