【问题标题】:Restrict S3 sub-folder level bucket policy about private and public限制有关私有和公共的 S3 子文件夹级别存储桶策略
【发布时间】:2020-09-19 07:28:05
【问题描述】:

我们有很多信息可以让我们的存储桶按存储桶级别公开和私有。但我很好奇我们可以对文件夹级别甚至子文件夹制定存储桶策略。以下是我当前 S3 存储桶中的文件夹结构。

companies/aa-company/public-folder
companies/aa-company/private-folder
companies/bb-company/public-folder
companies/bb-company/private-folder

我想知道的是我想在存储桶策略中对 public-folder 进行公共读取访问。有可能吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    是的,这绝对有可能。您可以使用wildcards 来实现此目的。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": [
                    "arn:aws:s3:::<bucket-name>/companies/aa-company/public-folder*",
                    "arn:aws:s3:::<bucket-name>/companies/bb-company/public-folder*"
                ]
            }
        ]
    }
    

    【讨论】:

      【解决方案2】:

      是的,您可以通过wildcards

      您可以将通配符用作资源 ARN 的一部分。您可以在任何 ARN 段(由冒号分隔的部分)中使用通配符(* 和 ?)。 星号 (*) 表示零个或多个字符的任意组合,问号 (?) 表示任意单个字符。您可以使用多个 * 或 ?每个段中的字符,但通配符不能跨越段

      示例策略如下所示(基于this):

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "PublicRead",
                  "Effect": "Allow",
                  "Principal": "*",
                  "Action": "s3:GetObject",
                  "Resource": "arn:aws:s3:::test-bucket-342-d/*/public-folder/*"
              }
          ]
      }
      

      您还需要禁用存储桶上的阻止公共访问设置

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 2019-10-06
        • 1970-01-01
        • 2021-09-27
        • 2014-03-21
        • 1970-01-01
        • 2019-05-02
        相关资源
        最近更新 更多