作为拥有S3FullPermissions的AWS IAM用户,如何配置策略禁止其他IAM用户访问我的S3存储桶?
S3存储桶禁止其他IAM用户访问的Bucket Policy配置方案
前置准备
替换策略模板中三个占位符为你的实际信息:
<你的S3存储桶名称>:你自行创建的目标存储桶的名称<你的12位AWS账户ID>:你的AWS账号的12位数字ID<你的IAM用户名>:你当前使用的IAM用户的用户名
可用策略模板
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOwnerFullAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<你的12位AWS账户ID>:user/<你的IAM用户名>" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::<你的S3存储桶名称>", "arn:aws:s3:::<你的S3存储桶名称>/*" ] }, { "Sid": "DenyAllOtherIAMUsers", "Effect": "Deny", "NotPrincipal": { "AWS": "arn:aws:iam::<你的12位AWS账户ID>:user/<你的IAM用户名>" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::<你的S3存储桶名称>", "arn:aws:s3:::<你的S3存储桶名称>/*" ] } ] }
策略逻辑说明
- 第一条语句专门给你的IAM用户开放该桶的全量操作权限,避免配置策略后你自己也无法访问桶
- 第二条语句通过
NotPrincipal匹配除你之外的所有身份,对所有S3操作执行显式拒绝,AWS权限体系中显式拒绝优先级高于任何允许类权限,因此就算其他IAM用户被分配了S3FullAccess权限,也无法访问该存储桶
注意事项
- 配置策略前建议先备份现有桶策略,避免配置错误导致权限丢失
- 如果你需要给AWS服务(比如CloudFront、CloudTrail)开放该桶的访问权限,可以在拒绝语句的
NotPrincipal中补充对应服务的服务主体,也可以通过Condition配置排除对应服务访问的场景 - 配置完成后建议用其他测试IAM用户验证访问限制是否生效
内容的提问来源于stack exchange,提问作者ansar basha
相关产品推荐
相关产品推荐

