S3存储桶AWS您无法授予公共访问权限,因为为此帐户已启用了阻止公共访问设置

时间:2019-05-11 21:22:27

标签: ruby-on-rails amazon-web-services amazon-s3 aws-sdk

我想向所有人公开S3存储桶,但这样做时我被拒绝访问,

You can't grant public access because Block public access settings 
are turned on for this account. To determine which settings are 
turned on, check your Block public access settings.

enter image description here

当我进入公共访问设置时,所有功能都将关闭。

enter image description here

我确实设置了IAM用户,并且用户具有AmazonS3FullAccess策略

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "*"
    }
  ]
 }

我确实在存储桶上设置了策略

{
"Version": "2012-10-17",
"Id": "Policy1557294263403",
"Statement": [
    {
        "Sid": "Stmt1557294241958",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::726051891502:user/borroup-admin"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::borroup",
            "arn:aws:s3:::borroup/*"
        ]
      }
    ]
 }

我确实在存储桶上设置了CORS配置编辑器

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

4 个答案:

答案 0 :(得分:1)

似乎必须从“权限”和“阻止公共访问”(帐户设置)两个地方都取消选中它。

enter image description here

答案 1 :(得分:0)

我希望您已经对此进行了整理,如果没有,请转到“修改公共访问权限设置” Edit public access settings 然后在下一个屏幕中输入确认以继续更改 confirm

答案 2 :(得分:0)

除了walterc的答案之外,如果仍有任何问题,我必须单击要访问的特定文件,然后单击该文件的“公开”,因为仅使存储桶公开对特定的文件无效文件链接访问。

答案 3 :(得分:0)

在使用 AWS S3 存储桶存储图像的 Rails 项目中,我遇到了同样的挑战。

我是这样解决的

  1. 点击并打开您想要的资产/图像/文件所在的存储桶。

enter image description here

  1. 点击存储桶页面顶部菜单中的“权限”选项卡

enter image description here

  1. 点击阻止公共访问(存储桶设置)部分中的编辑。然后取消勾选阻止所有公共访问。然后保存您的更改。

enter image description here

注意:您可以从给定的选项中选择所需的公共访问类型。

仅此而已。

我希望这会有所帮助