S3:默认将上传的文件设为公开

Jim*_*imi 5 amazon-s3 amazon-web-services

我有一个公共 S3 存储桶,公共策略设置如下

{
    "Version": "2012-10-17",
    "Id": "Policy1563368389080",
    "Statement": [
        {
            "Sid": "Stmt1563368385984",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::mybucketname/*",
                "arn:aws:s3:::mybucketname"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,当我上传新文件时,默认情况下它不是公开的。我的政策有问题吗?

Nab*_*ikh 6

要默认公开它,您需要在各自的 aws S3 存储桶的存储桶策略下添加以下代码。

{
  "Version":"2012-10-17",
  "Statement":[{
    "Sid":"PublicReadGetObject",
        "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::example-bucket/*"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Joh*_*ein 1

问题就在这里:

    "Principal": {
        "AWS": "*"
    },
Run Code Online (Sandbox Code Playgroud)

它应该是:

    "Principal": "*",
Run Code Online (Sandbox Code Playgroud)