为什么我在以创建 AWS 账户的人身份登录时没有编辑 S3 存储桶策略的权限

RLB*_*ant 4 amazon-s3 amazon-web-services

我是 AWS 的新手。我正在设置一个 S3 存储桶,我想用它来存储我正在开发的 Django 应用程序的媒体文件。

我以创建 AWS 账户的人身份登录,但是当我单击权限选项卡然后尝试编辑存储桶策略时,我收到一条消息,指出“您无权编辑存储桶策略”。

我正在遵循描述 Django 设置配置的指南,但我的理解是这样做的目的是允许对文件进行公共读取访问。我能够毫无问题地设置 CORS 策略。

我创建了一个以他们身份登录的 IAM 用户,但它仍然出现错误。该 IAM 用户有权访问所有 S3 存储桶。该错误指出“在您或您的 AWS 管理员更新您的权限以允许 s3:PutBucketPolicy 操作后,选择保存更改。”

我去了应用于存储桶的策略,它具有此权限。这是 JSON。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "mybucketARN"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": "mybucketARN"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

RLB*_*ant 5

必须在存储桶上启用公共访问,然后我才能保存存储桶策略。

这是我添加的政策。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "myBucketarn"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)


小智 5

当您尝试分配存储桶策略并且其主体中包含“*”时,则需要禁用“阻止公共访问”设置。否则,您将收到错误“在您或您的 AWS 管理员更新您的权限以允许 s3:PutBucketPolicy 操作后,选择保存更改”。

您最初问题中的问题是您设置的策略看起来不像存储桶策略,因为其中没有主体。

即使不禁用“阻止公共访问”设置,您也可以在主体中放置具有特定 ARN 的存储桶策略。

希望能帮助到你!