默认将 S3 存储桶中的新对象设为公开

默认将 S3 存储桶中的新对象设为公开

我有一个 s3 bucket,其中的对象需要公开,现在每次我上传新文件时,我都必须单击它,然后单击“使用 acl 公开”。我想知道是否有办法将其设置为默认情况下任何上传到我的 bucket 的新文件都是公开的。我尝试授予 bucket 本身公开权限,但我仍然必须将单个对象也公开。

答案1

详情请见帖子 如何默认将 Amazon S3 存储桶中的所有对象设为公开

恢复:

  • 打开要公开的存储桶的属性

  • 点击“权限”

  • 点击“编辑存储桶策略”

  • 复制并粘贴以下文本:

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "PublicReadGetObject",
            "Action": "s3:GetObject",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::test.h3xed.com/*",
            "Principal": "*"
          }
        ]
      }
    
  • 更改test.h3xed.com为您的存储桶的实际名称

  • 点击“保存”。

注意:用户仍必须使用您资源的准确 URL。他们无法查看您的存储桶的“索引”或列出其内容。

答案2

@fred,现在你的问题可能已经解决了。关于你的评论“我收到“你无权编辑存储桶策略”,我尝试以 root 用户和具有完全访问权限的 IAM 用户身份操作。”,这可能是因为已启用阻止公共访问存储桶 (https://docs.aws.amazon.com/AmazonS3/latest/userguide/configuring-block-public-access-bucket.html)可在存储桶级别或帐户级别进行设置(https://docs.aws.amazon.com/AmazonS3/latest/userguide/configuring-block-public-access-account.html)。 阻止公共访问存储桶 AWS S3 控制台

相关内容