如何控制IAM用户可附加的策略?防止授予AdministratorAccess权限
解决方案
一、控制IAM用户可添加/移除的策略(可行方案)
你可以通过IAM策略的条件键精准限制用户能操作的策略对象,核心是利用iam:PolicyArn这个条件键,配合字符串匹配条件实现白名单或黑名单控制:
1. 白名单模式(推荐)
直接指定该用户仅能附加预设的受控策略,完全符合你创建受控策略集的初衷,示例策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachUserPolicy", "iam:DetachUserPolicy" ], "Resource": "arn:aws:iam::ACCOUNT_ID:user/*", "Condition": { "StringEquals": { "iam:PolicyArn": [ "arn:aws:iam::ACCOUNT_ID:policy/受控策略1", "arn:aws:iam::ACCOUNT_ID:policy/受控策略2" ] } } } ] }
替换ACCOUNT_ID为你的AWS账号ID,受控策略1/2为允许的自定义策略ARN即可。
2. 黑名单模式(应急补充)
如果需要快速阻止附加高风险策略(比如AdministratorAccess),可以用StringNotEquals条件:
{ "Effect": "Allow", "Action": [ "iam:AttachUserPolicy", "iam:DetachUserPolicy" ], "Resource": "arn:aws:iam::ACCOUNT_ID:user/*", "Condition": { "StringNotEquals": { "iam:PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" } } }
注意黑名单安全性低于白名单,仅建议作为临时应急手段。
二、管理员权限风险的额外防护方案
除了策略控制,还可以通过以下手段降低入侵后的风险:
- 强制MFA认证:给该IAM用户启用多因素认证,即使密码泄露,攻击者也无法直接操作。
- CloudTrail告警:配置CloudWatch规则,当检测到
iam:AttachUserPolicy操作关联AdministratorAccess策略时,立即发送告警通知。 - IAM访问分析器:启用AWS IAM访问分析器,实时监控不符合权限规则的策略变更操作,及时发现异常。
- 限制会话时长:给该用户设置最大会话时长,缩短攻击者获取权限后的可操作窗口。
内容的提问来源于stack exchange,提问作者Szzaass
相关产品推荐
相关产品推荐

