Amazon web services 亚马逊s3&x2013;403禁止使用正确的桶策略
我正在尝试使用下面的存储桶策略,使存储在s3存储桶中的所有图像公开可读Amazon web services 亚马逊s3&x2013;403禁止使用正确的桶策略,amazon-web-services,amazon-s3,permissions,s3cmd,Amazon Web Services,Amazon S3,Permissions,S3cmd,我正在尝试使用下面的存储桶策略,使存储在s3存储桶中的所有图像公开可读 { "Id": "Policy1380877762691", "Statement": [ { "Sid": "Stmt1380877761162", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::<buc
{
"Id": "Policy1380877762691",
"Statement": [
{
"Sid": "Stmt1380877761162",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket-name>/*",
"Principal": {
"AWS": [
"*"
]
}
}
]
{
“Id”:“保单138087762691”,
“声明”:[
{
“Sid”:“Stmt1380877761162”,
“行动”:[
“s3:GetObject”
],
“效果”:“允许”,
“资源”:“arn:aws:s3:::/*”,
“委托人”:{
“AWS”:[
"*"
]
}
}
]
}
我有4个其他类似的s3存储桶,它们具有相同的存储桶策略,但我不断收到403个错误
这个bucket中的图像是在我尝试将bucket的内容迁移到新帐户时使用s3cmd sync传输的
我能看到的唯一区别是
如果希望everyone访问bucket中的S3对象,则主体应为“*”,即如下所示:
{
"Id": "Policy1380877762691",
"Statement": [
{
"Sid": "Stmt1380877761162",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket-name>/*",
"Principal": "*"
}
}
]
}
{
“Id”:“保单138087762691”,
“声明”:[
{
“Sid”:“Stmt1380877761162”,
“行动”:[
“s3:GetObject”
],
“效果”:“允许”,
“资源”:“arn:aws:s3:::/*”,
“委托人”:“*”
}
}
]
}
来源:来自AWS文档不确定这里的顺序或属性是否重要。我想尝试一下。我已经通过再次运行s3cmd命令解决了这个问题,但在它的末尾添加了
--acl public
。似乎已经解决了我的问题我知道这是一个老问题,但对于有此问题并在AWS控制台上工作的人来说。转到AWS S3控制台中的铲斗:
请注意,这将使INTERNET上的任何人都可以访问您的BUCKET,如果他们没有AWS帐户,他们仍然可以访问BUCKET和BUCKET的内容请小心处理刚刚尝试过,同样的问题–403错误访问被拒绝。我试过几种不同的排列方式,但都没用,真奇怪。我在我的一些S3存储桶上有类似的策略,它确实有效。我能发现的唯一区别是,您的bucket策略中没有“版本”:“2012-10-17”。也许可以试试?同样的,在我的另一个桶上,这个政策是有效的。在桶与桶之间的转移过程中似乎丢失了一些东西。除了grantee:everyone对每个对象的权限之外,没有其他配置不同。需要记住的一点是,如果您让grantee everyone对该对象打开/下载,则不需要任何bucket策略来实现这一点,因此,您现有的策略实际上可能是错误的,并且没有做任何有用的事情。+1:修复了我禁用“阻止公共和跨帐户访问”后的问题。另一个选项“阻止新的publich bucket策略”已被禁用,以允许保存策略。我是AWS新手,但它帮助我在静态网站设置方面取得了一些进展
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
}
]
}