存储桶策略是否适用于非我拥有的对象? (公共桶?)

时间:2016-07-16 19:12:48

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

首先,让我链接你的背景:

https://stackoverflow.com/a/9285074/6347501

我正在尝试为我正在编写的某个应用创建一个公共存储桶。我有一个策略允许PUT和GET在桶中的所有项目。但是,正如您从上面的链接中看到的那样,该策略根本不适用于任何放入存储桶但未授予我所有权的项目。

有什么解决方案吗?实际上是否可以创建一个真正的公共存储桶?

理想情况下,每个人都可以访问此存储桶中的每个对象,无论是谁上传它。

1 个答案:

答案 0 :(得分:0)

这是一项工作政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::my-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}

它拒绝任何不使用固定ACL“bucket-owner-full-access”的对象,这些对象也是忽略我们的开放GetObject策略的对象。