Amazon web services 亚马逊s3&x2013;403禁止使用正确的桶策略

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

我正在尝试使用下面的存储桶策略,使存储在s3存储桶中的所有图像公开可读

{
"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传输的

我能看到的唯一区别是

  • 我正在使用具有管理员权限的IAM用户,而不是根用户
  • 这些文件没有一个 “被授权人:每个人打开/下载文件”权限 文件,文件在旧桶里的东西

  • 如果希望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控制台中的铲斗:

  • 打开“权限”选项卡
  • 打开公共访问设置
  • 单击编辑
  • 然后在编辑页面中:

  • 取消选中阻止新公共存储桶策略(推荐)
  • 如果bucket具有公共策略,则取消选中阻止公共和跨帐户访问(推荐)
  • 单击保存
  • 小心


    请注意,这将使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/*"]
        }
      ]
    }