如何编写IAM策略禁用AWS账户中90天未使用且暂不删除的角色
临时禁用闲置IAM角色的可直接附加策略方案
不需要删除角色,也不需要修改原有角色的信任关系和已有权限,直接给目标角色附加一条显式全拒的IAM权限策略即可。IAM权限评估逻辑中显式Deny的优先级最高,会覆盖所有绑定到该角色的允许类权限,直接锁死角色对账户内资源的所有操作权限,后续要恢复角色使用时,只要解绑/删除这条策略就行,无额外配置成本。
可直接使用的策略内容
将下方策略直接作为内联策略附加到目标角色,或者创建为客户托管策略批量绑定所有需要禁用的闲置角色即可:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "替换为你的Dev环境AWS账户12位ID" } } } ] }
如果需要完全锁死角色的所有操作(包括访问其他AWS账户资源的权限),直接删掉Condition字段即可,策略会拒绝角色主体的所有操作请求。
操作注意事项
- 不要通过修改角色信任策略的方式实现禁用,后续恢复时很容易因为信任策略配置疏漏引发权限故障,附加权限侧的Deny策略是风险最低的方案
- 批量操作前先核对目标闲置角色列表,确认没有正在使用的业务角色,避免误操作影响线上业务
- 如果闲置角色数量较多,优先创建客户托管策略做批量绑定,后续批量恢复时只需要解绑这一条托管策略,运维效率更高
内容的提问来源于stack exchange,提问作者bibi
相关产品推荐
相关产品推荐

