amazon-web-services - 如何将上传到 S3 存储桶的所有文件的访问级别设置为 "Public"?

标签 amazon-web-services amazon-s3

我创建了一个 S3 存储桶,还通过 AWS API Gateway 创建了一个 API,用于将图像上传到该存储桶。 问题是,当我上传图像时,要查看该图像,我需要分别将每个图像的访问控制列表 (ACL) 更新为公开。 即使我将存储桶中的所有内容设置为公开权限,但我仍然必须更新每个图像中的 ACL 才能访问它们。如何将整个存储桶的访问级别设置为“公共(public)”一次?

这是我的存储桶权限:

访问:公开

阻止所有公共(public)访问:关闭

存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "Policy1647249671911",
    "Statement": [
        {
            "Sid": "Stmt1647249649218",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::mybucketname"
        }
    ]
}

访问控制列表(ACL):

enter image description here

最佳答案

您当前的政策高度不安全,允许任何人对您的存储桶执行几乎任何操作,包括更改其政策或删除它。
correct公共(public)只读访问的存储桶策略是:

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

关于amazon-web-services - 如何将上传到 S3 存储桶的所有文件的访问级别设置为 "Public"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71465558/

相关文章:

amazon-web-services - AWS EC2 实例 WebSocket 连接失败的问题:连接建立错误:net::ERR_CONNECTION_TIMED_OUT

amazon-web-services - 如何为每个单个 AMI/EBS 设置自动计划快照?

python - 如何在 AWS Lambda 中模拟 multiprocessing.Pool.map()?

mysql - 从 RDS 到 S3 的 AWS 数据管道复制因通信链路故障而失败

python - 如何/何时使用 Boto 库计算 s3 上传的 md5 哈希

amazon-web-services - aws cli ec2 描述实例表输出

python - Boto3 逐行从 S3 键读取文件内容

java - 拒绝访问(服务: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxxxxxxxx)

amazon-web-services - 您如何找到用于在 Amazon S3 上创建现有多部分对象的部分大小?

node.js - S3 存储桶 Lambda 事件 : Unable to validate the following destination configurations