【问题标题】:AWS S3 Bucket Policy throws Access Denied ErrorAWS S3 存储桶策略引发拒绝访问错误
【发布时间】:2019-10-05 15:10:38
【问题描述】:

根据链接https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html --> 我试图在 AWS S3 上创建和托管一个静态页面。但是我无法使用存储桶策略提供对我的存储桶的公共访问权限。

所以,一旦我粘贴了

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

它让我访问被拒绝错误。

在 IAM 中,我已将以下自定义策略关联到我的用户 ID,但我仍然收到错误消息。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket-name.com",
                "arn:aws:s3:::mybucket-name.com/*"
            ]
        }
    ]
}

我还将此政策与我的用户名和角色相关联。 创建存储桶时,我的“阻止公共访问”看起来像这样。 我的 ACL 按钮也提供了对“仅列表”的公共访问权限。

那么,任何人都可以帮助我这里缺少什么,我已经研究了这里提供的不同建议,仍然没有运气。谁能给我任何方向,比如不迷路?

【问题讨论】:

  • 如果您在尝试分配存储桶策略时看到“拒绝访问”,那是因为您需要的权限比 VisualEditor0 策略中显示的权限多。该策略适用于列出和访问存储桶中的对象,不适用于修改存储桶的策略。
  • @jarmod,我明白你在说什么,所以我给了 s3:* 这不起作用。因此,我结束了删除策略并将 AmazonS3FullAccess 策略附加到我的管理员用户。仍然没有运气。任何其他想法,我可能会遗漏一些东西。

标签: amazon-web-services amazon-s3 amazon-iam policy bucket


【解决方案1】:

您只为自己分配了编辑存储桶中内容的权限。有关权限列表,请参阅S3 docs

您至少想将s3:PutBucketPolicy 添加到您的用户权限列表中。但s3:PutBucketAcls3:PutBucketWebsite 也可能有用。

就个人而言,我可能只是将s3:* 提供给设置它的用户,否则您可能最终会再次遇到这个绊脚石。

【讨论】:

  • 我确实添加了 s3.* 没有用,所以最后,我已将 AmazonS3FullAccess 策略添加到我的管理员帐户中,但 S3 在添加“s3: GetObject”时仍抛出错误“访问被拒绝” " 对存储桶策略中我的存储桶名称/* 的操作。我还检查了拥有存储桶的规范 id 与 IAM user 相同。所以我不明白为什么添加存储桶策略最终会出现“拒绝访问”错误。当我一直使用同一个管理员用户时。
  • 如果 s3:* 仍然给您带来问题,那是因为您的资源 arn 错误。请注意,IAM 权限更新可能需要几分钟才能启动。如果您查看 AmazonS3FullAccess,它基本上是 s3:* 但没有资源限制。那么,也许您的存储桶 arn 中有错字?
  • 存储桶 ARN 中没有错字。即使我多次删除并重新创建了存储桶。但是,我通过简单地将 `principal from Any` 替换为 principal: {"AWS": "arn:aws:iam::1234567:user/username"} 来消除错误访问被拒绝,现在错误消失了。但现在我在点击静态网站后收到拒绝访问消息。但是,我将在不同的帖子中发布我的问题,目前通过添加特定用户名来访问 S3 解决了这个问题。但仍然看不到权限选项卡上的公共访问权限。但不知道或不知道这是否是正确的方法。
猜你喜欢
  • 1970-01-01
  • 2018-01-10
  • 2019-04-28
  • 1970-01-01
  • 2021-09-03
  • 2017-02-14
  • 2021-03-28
  • 2019-04-20
  • 2017-07-04
相关资源
最近更新 更多