You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从AWS外部获取S3存储桶读取权限问题求助

问题:AWS S3存储桶可外部创建/上传,但无法列出内容

我在AWS创建了一个公开S3存储桶,能通过Access Key和Secret Key从AWS外部访问。使用MinIO命令行工具可以正常创建存储桶、上传文件,这些操作的结果在AWS控制台中都能看到,但无法从AWS外部列出存储桶及文件内容。尝试过多种存储桶策略来启用列表权限,均未生效。

当前应用的存储桶策略如下:

{
    "Version": "2012-10-17",
    "Id": "Policy1693297634765",
    "Statement": [
        {
            "Sid": "Stmt1693297627638",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::bucket-name/*"
        }
    ]
}

执行MinIO命令后,mc ls无输出:

(base) user@host:/mnt/c/folder/Data$ mc mb aws/test-29-8-23
Bucket created successfully `aws/test-29-8-23`.
(base) user@host:/mnt/c/folder/Data$ mc cp 230601_0000.csv aws/test-29-8-23
.../230601_0000.csv:  321 B / 321 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 922 B/s 0s
(base) user@host:/mnt/c/folder/Data$ mc ls aws/test-29-8-23

解决方案

问题根源在于存储桶策略的Resource配置:当前策略仅授权了桶内对象(arn:aws:s3:::bucket-name/*)的操作权限,但列出桶内容(对应s3:ListBucket动作)需要的是针对桶本身(arn:aws:s3:::bucket-name)的权限,而非桶内对象。

修改后的存储桶策略需要同时包含桶和桶内对象的资源:

{
    "Version": "2012-10-17",
    "Id": "Policy1693297634765",
    "Statement": [
        {
            "Sid": "Stmt1693297627638",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}

额外注意事项

  • 为了安全性,建议不要使用s3:*全权限,而是根据实际需求缩小动作范围,比如仅授权s3:ListBucket、s3:GetObject、s3:PutObject等必要操作
  • 若使用的是IAM用户密钥而非AWS根密钥,需确认该IAM用户本身也配置了对应的列表权限——存储桶策略与IAM权限是叠加生效的

内容的提问来源于stack exchange,提问作者user207453

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:07:55