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

AWS S3:对象创建正常但列表操作返回403权限错误

AWS S3 IAM策略ListBucket权限问题排查与解决

问题场景

配置了一条AWS IAM策略,包含两条规则,目标是限制用户仅能在S3存储桶的特定路径内执行文件列表及管理操作。目前创建/上传、删除等管理操作均可正常执行,但执行s3:ListBucket(列出文件)操作时,无论在指定路径内还是路径外,均返回403权限错误。

运行该操作的服务是部署在EKS上的极简Quarkus应用,仅包含S3依赖及必要组件,无其他服务使用该策略访问S3。

原不生效的ListBucket策略片段

{"Statement": [{"Action": ["s3:ListBucket"],"Effect": "Allow","Resource": ["arn:aws:s3:::mybucket/folderA/subfolder/*"],"Sid": "ListObjectsInBucket"}],"Version": "2012-10-17"}

修正后生效的策略

{"Statement": [{"Sid": "ListObjectsInBucket","Action": ["s3:ListBucket"],"Effect": "Allow","Resource": ["arn:aws:s3:::bucket"],"Condition": {"StringLike": {"s3:prefix": "folderA/subfolder/*"}}}],"Version": "2012-10-17"}

问题原因解析

s3:ListBucket是存储桶级别的操作,而非对象级操作。原策略错误地将Resource指定为桶内的对象路径(arn:aws:s3:::mybucket/folderA/subfolder/*),但该操作的授权对象必须是存储桶本身的ARN(arn:aws:s3:::bucket)。

正确的做法是:将Resource设为存储桶ARN,然后通过Condition中的StringLike匹配s3:prefix参数,限制仅能列出指定前缀(即目标路径)下的内容,这样就能实现仅允许在特定路径内执行列表操作的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:42:51