【问题标题】:Bucket policy apply to objects not owned by me? (public bucket?)存储桶策略适用于不属于我的对象? (公共桶?)
【发布时间】:2016-11-19 18:14:41
【问题描述】:

首先,让我链接你的上下文:

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

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

有什么解决办法吗?真的可以创建一个真正的公共存储桶吗?

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

【问题讨论】:

  • 您想授予公共正确的只读权限吗?
  • 您希望 public 能够上传到存储桶?
  • 我知道,但我已经弄清楚了,我会在下面发布政策。

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


【解决方案1】:

这是一项工作政策:

{
    "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 策略。

【讨论】:

  • 这是实现一个非常糟糕的想法的正确方法。一个公共桶乞求被滥用。
  • 您是否考虑过这可能不是生产策略?
  • 我会断言公共可写存储桶的有效用例恰好为零。签署请求。
  • 嗯,它确实有一个,当我不想将某些东西发布到生产环境时,我的时间很短。怎么样?我想听听这个非常有用的东西是如何无效的,或者为什么它与你的任何业务有关,无论它是否有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2019-04-20
相关资源
最近更新 更多