如何防止AWS IAM管理员修改其他管理员分配的自身权限策略?
AWS IAM管理员权限限制方案
这个需求完全可以实现,核心是通过精准的Deny语句阻断特定操作,结合IAM规则细化控制范围。
当前策略的问题
你现在的策略存在几个关键漏洞,导致admin2仍能给自己加权限、修改admin1的权限:
- 操作覆盖不全:只针对角色(Role)相关的操作,比如
AttachRolePolicy,但用户策略的操作是iam:AttachUserPolicy这类,完全没覆盖; - 资源配置错误:针对用户的操作,Resource需要明确指向admin2的用户ARN,同时还要覆盖策略资源,防止通过关联其他策略提权;
- 未限制admin1相关操作:完全没阻断admin2修改admin1权限的行为。
修正后的策略示例
把下面策略里的acc_no换成你的AWS账号ID,admin1换成管理员1的用户名,给admin2的限制策略名称换成你给admin2分配的限制策略名称:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "region1", "region2" ] } } }, { "Sid": "BlockAdmin2SelfPolicyChanges", "Effect": "Deny", "Action": [ "iam:AttachUserPolicy", "iam:DetachUserPolicy", "iam:PutUserPolicy", "iam:DeleteUserPolicy" ], "Resource": [ "arn:aws:iam::acc_no:user/admin2", "arn:aws:iam::acc_no:policy/*" ] }, { "Sid": "BlockChangesToAdmin1", "Effect": "Deny", "Action": [ "iam:AttachUserPolicy", "iam:DetachUserPolicy", "iam:PutUserPolicy", "iam:DeleteUserPolicy", "iam:UpdateUser", "iam:DeleteUser", "iam:AddUserToGroup", "iam:RemoveUserFromGroup" ], "Resource": "arn:aws:iam::acc_no:user/admin1" }, { "Sid": "BlockModifyingRestrictivePolicy", "Effect": "Deny", "Action": [ "iam:DeletePolicy", "iam:CreatePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::acc_no:policy/给admin2的限制策略名称" } ] }
策略各部分作用
- Allow语句:保留你原来的区域限制,让admin2能在指定区域执行所有正常操作;
- BlockAdmin2SelfPolicyChanges:彻底阻断admin2给自己附加、移除策略,或者创建/删除自身内嵌策略的操作,同时覆盖所有自定义策略,防止绕开限制;
- BlockChangesToAdmin1:阻断admin2对admin1的所有权限修改、用户信息变更、组归属调整操作,确保admin1的权限不受干扰;
- BlockModifyingRestrictivePolicy:如果给admin2的限制策略是单独的自定义策略,这部分能防止admin2删除、修改该策略版本,避免废掉限制规则。
注意事项
- 务必把占位符替换成实际的账号ID、用户名和策略名;
- IAM规则中Deny优先级高于Allow,这些阻断规则会优先生效;
- 建议先在测试环境验证策略,避免影响正常业务操作。
内容的提问来源于stack exchange,提问作者Cloud Wanderer
相关产品推荐
相关产品推荐

