S3权限策略调整咨询:限制用户仅操作dir1目录
问题分析与策略修改方案
当前策略里的s3:ListBucket权限针对整个存储桶,未添加前缀限制,导致用户能查看桶内所有目录前缀。要实现仅允许列举dir1目录的需求,需给ListBucket语句加上条件限制,锁定可访问的前缀范围。
修改后的完整策略
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::mybucket" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "dir1/", "dir1/*" ] }, "StringLike": { "s3:delimiter": "/" } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::mybucket/dir1/*" } ] }
关键修改说明
- 新增
Condition块:通过s3:prefix指定允许访问的前缀,空字符串和dir1/用于让用户能看到dir1目录本身,dir1/*允许查看该目录下的所有对象; s3:delimiter设为/,确保用户只能看到dir1目录下的层级,无法遍历其他无关目录。
修改后,user1仅能列举dir1目录及其下对象,同时保留原有的上传、下载权限。
内容的提问来源于stack exchange,提问作者Cruise5
相关产品推荐
相关产品推荐

