S3单个文件夹IAM只读权限配置:能否合并两个权限代码块?
可以合并为单个IAM权限语句
这两个权限可以合并成一个语句,核心是要区分S3两类操作的资源特性:ListBucket/ListBucketVersions作用于存储桶本身,而GetObject类操作作用于具体对象路径。合并后的配置如下:
{ "Sid": "AllowComplianceTeamRoleReadOnlyAccess", "Effect": "Allow", "Principal": { "AWS": {"Ref": "FINEFSComplianceTeamRole"} }, "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListBucket", "s3:ListBucketVersions" ], "Resource": [ {"Fn::Sub": "arn:aws:s3:::${S3Bucket}"}, {"Fn::Sub": "arn:aws:s3:::${S3Bucket}/processed/in/compliance/*"} ], "Condition": { "StringLike": { "s3:prefix": "processed/in/compliance/*" } } }
合并说明
- 把两组操作的
Action合并到同一个数组中,无需拆分 - 资源同时包含存储桶ARN(满足List类操作的资源要求)和目标文件夹的对象路径ARN(满足Get类操作的资源要求)
- 保留的
Condition仅会对ListBucket/ListBucketVersions生效,限制仅能列出指定前缀下的内容,不会影响Get类操作对目标路径对象的访问
内容的提问来源于stack exchange,提问作者saar
相关产品推荐
相关产品推荐

