首页 文章

亚马逊s3 - 403禁止使用正确的存储桶策略

提问于
浏览
2

我正在尝试使用以下存储桶策略将我存储在s3存储桶中的所有图像公开读取 .

{
"Id": "Policy1380877762691",
"Statement": [
    {
        "Sid": "Stmt1380877761162",
        "Action": [
            "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::<bucket-name>/*",
        "Principal": {
            "AWS": [
                "*"
            ]
        }
    }
]

}

我有4个其他类似的s3存储桶具有相同的存储桶策略,但我不断收到403错误 .

当我尝试将存储桶的内容迁移到新帐户时,使用s3cmd同步传输此存储桶中的映像 .

我能看到的唯一区别是

  • 我正在使用具有管理员权限的IAM用户,而不是root用户

  • 这些文件对每个文件都没有"grantee : everyone open/download file"权限,这些文件在旧桶中都有

3 回答

  • 0

    如果您希望 everyone 访问存储桶中的S3对象,则主体应为"*",即,如下所示:

    {
    "Id": "Policy1380877762691",
    "Statement": [
        {
            "Sid": "Stmt1380877761162",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::<bucket-name>/*",
            "Principal": "*"
            }
        }
    ]
    
    }
    

    资料来源:http://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Principal

  • 2

    我已经设法通过再次运行s3cmd命令来解决它,但在它的末尾添加了 --acl-public . 似乎解决了我的问题

  • 1

    来自AWS文档
    http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

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

    不确定订单或属性是否重要 . 我会尝试一下这个 .

相关问题