【问题标题】:How to set public read only access on Amazon S3 Bucket?如何在 Amazon S3 存储桶上设置公共只读访问权限?
【发布时间】:2020-02-23 01:50:22
【问题描述】:

我在 StackOverflow 上发现了几个类似的问题,例如 this one,但它们已经很老了,而且从那时起 S3 似乎情况发生了变化。他们添加了这四个非常令人困惑的设置: 如果我关闭这些,是否意味着我的存储桶可以被公众写入? 另外我还添加了这个策略:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "PublicReadForGetBucketObjects",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::REDACTED/*"
    },
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::REDACTED:user/REDACTED"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::REDACTED",
            "arn:aws:s3:::REDACTED/*"
        ]
    }
]

还有这个 CORS 配置:

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

我正在尝试向我在 IAM 中创建的用户授予公开读取权限并限制完全访问权限。 如果有人能确认我的设置是否正确,或者如果他们没有为我指出正确设置所需的资源,我将不胜感激。

【问题讨论】:

  • 您的政策似乎有误。从the post,设置策略并关闭阻止公共访问(已经完成)。
  • 不,禁用阻止公共访问不会使您的存储桶公开可写(或可读)。禁用它只是让您可以公开对象。
  • 谢谢,在您的帮助下我找到了正确的设置!
  • 是的,我遇到了类似的问题.. 设置不必要地令人困惑

标签: amazon-web-services amazon-s3


【解决方案1】:

要使对象公开可访问,请使用如下策略:

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

注意使用"Principal": "*",这与使用"Principal": {"AWS": "*"} 的策略不同。

这允许访问对象(GetObject),但无法列出存储桶的内容。这将需要存储桶本身的ListBucket 权限(没有/*)。

您还需要关闭与存储桶策略相关的两个阻止公共访问设置

【讨论】:

  • +1 用于解释列出存储桶内容的权限以及需要关闭哪些阻止设置。正是我需要知道的。
  • @john-rotenstein 您要关闭哪两个块?有一个可以控制所有,还有其他 4 个单独的选项可以打开/关闭。
  • @CesarFlores 在各个选项中,关闭提及Bucket Policy的两个选项。
猜你喜欢
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2017-04-30
  • 2019-04-20
  • 2016-11-16
  • 1970-01-01
相关资源
最近更新 更多