【问题标题】:aws s3 access denied when changing bucket policy for root user更改 root 用户的存储桶策略时,AWS s3 访问被拒绝
【发布时间】:2019-04-17 17:22:07
【问题描述】:

我以 root 用户身份登录 aws 帐户。已为 static website hosting 创建了一个存储桶。我还取消了Public access Settings 上的所有选项,如下图所示。

之后我尝试将存储桶策略从docs更新为此

{
  "Version":"2012-10-17",
  "Statement":[{
    "Sid":"PublicReadGetObject",
        "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::example-bucket/*"
      ]
    }
  ]
}

但我不断收到Access denied 错误。我不明白我错过了什么。我已经尝试过以下事情。

  • 我发现其他 SO 帖子 this 告诉我取消选中 block new public bucket policies option 我已经完成了但 为什么它对我不起作用?

  • 我销毁了存储桶并从头开始重做所有内容,但同样的问题 持续存在。

  • 我还创建了一个具有访问所有内容的角色的新 IAM 用户。这也没有解决问题。

  • 但是,我可以通过 s3 Overview 选项卡下 s3 菜单中的 Make Public 选项手动将 s3 对象更改为 public。这暂时解决了我的问题,但我每次重新上传文件时都必须继续这样做。

所以我的问题是。 为什么即使是 root 用户,我也总是被拒绝访问?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    我按照您的步骤操作,对我来说效果很好:

    • 我创建了一个新存储桶
    • 我点击了存储桶,进入了权限标签并编辑了公共访问设置
    • 我关闭了关闭管理此存储桶的公共存储桶策略下的两个设置
    • 我添加了存储桶政策,采用了您的政策(如上)并更改了存储桶名称以匹配我的存储桶
    • 我已成功保存存储桶策略

    然后它给了我一个警告:

    此存储桶具有公共访问权限

    您已提供对此存储分区的公开访问权限。我们强烈建议您永远不要授予对您的 S3 存储桶的任何类型的公共访问权限。

    我不明白您为什么会收到拒绝访问。我唯一的建议是使用不同的浏览器尝试一下,以防出现一些奇怪的问题。

    您还可以通过 AWS CLI 添加存储桶策略put-bucket-policy — AWS CLI Command Reference

    这也成功地将存储桶策略添加到我的存储桶中。

    【讨论】:

    • 谢谢你,约翰,不幸的是,即使从 cli 我也得到了同样的错误。我将尝试使用全新的 aws 帐户,以确保这是否仅在我的帐户中发生。
    猜你喜欢
    • 2018-01-10
    • 2019-04-21
    • 2019-04-28
    • 1970-01-01
    • 2021-09-03
    • 2021-03-28
    • 2019-02-03
    • 2019-04-20
    • 1970-01-01
    相关资源
    最近更新 更多