我正在尝试使用以下存储桶策略将我存储在s3存储桶中的所有图像公开读取。
{
"Id": "Policy1380877762691",
"Statement": [
{
"Sid": "Stmt1380877761162",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket-name>/*",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
我有4个其他类似的s3存储桶具有相同的存储桶策略,但我一直收到403错误。
当我尝试将存储桶的内容迁移到新帐户时,使用s3cmd同步传输此存储桶中的映像。
我能看到的唯一区别是
答案 0 :(得分:2)
如果您希望所有人访问存储桶中的S3对象,则主体应为&#34; *&#34;,即,如下所示:
{
"Id": "Policy1380877762691",
"Statement": [
{
"Sid": "Stmt1380877761162",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket-name>/*",
"Principal": "*"
}
}
]
}
答案 1 :(得分:2)
我已经设法通过再次运行s3cmd命令来解决它,但是在它的末尾添加了--acl-public
。似乎解决了我的问题
答案 2 :(得分:1)
我知道这是一个古老的问题,但是对于谁遇到此问题并通过AWS控制台进行工作的人而言。转到AWS S3控制台中的存储桶:
然后在编辑页面:
注意
请注意,这将使您的存储桶任何人都可以在互联网上访问,如果它们没有AWS账户,它们仍然可以访问存储桶和存储桶中的内容。 请小心处理!
答案 3 :(得分:0)
来自AWS文档
http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
}
]
}
不确定此处的订单或属性是否重要。我会尝试一下这个。