如何仅在周五下午撤销老板的AWS凭证且防止被禁用?
可行解决方案
以下是几种能实现周五下午自动撤销指定IAM用户权限,且降低被提前禁用风险的方法:
1. 锁定触发资源的CloudWatch+Lambda方案
创建Lambda函数,核心逻辑为移除目标用户所有附加IAM策略,并绑定拒绝全量访问的策略(示例策略见下文)。接着创建CloudWatch定时事件,触发时间设为周五下午的具体时段(比如对应UTC时区的cron(0 17 ? * FRI *),需根据实际时区调整)。
关键配置:
- 给创建该事件的账号分配最小权限,仅允许创建/配置指定的CloudWatch事件和Lambda;
- 通过IAM权限明确禁止目标用户(老板)拥有修改该CloudWatch事件、Lambda函数及对应资源策略的权限;
- 给Lambda设置资源策略,仅允许指定的CloudWatch事件触发,杜绝其他调用途径。
拒绝全量访问的IAM策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*" } ] }
2. AWS Organizations SCP强制限制
若账号隶属于AWS Organizations组织,可利用服务控制策略(SCP)实现强制权限限制:
- 提前创建拒绝目标用户全量访问的SCP;
- 通过CloudWatch事件触发Lambda,在周五下午将该SCP应用到目标用户所在的OU或直接绑定到对应AWS账号;
- SCP优先级高于账号内的IAM权限,即便目标用户是账号管理员,也会被SCP限制。需确保执行该操作的角色拥有管理SCP的权限,且目标用户无法修改Organizations配置。
3. 跨账号触发方案
使用独立的第三方AWS账号部署触发逻辑:
- 在第三方账号中创建CloudWatch定时事件和Lambda函数;
- 给第三方账号的IAM角色授予目标账号中管理目标IAM用户的权限(通过跨账号角色信任关系配置);
- 由于触发资源不在目标账号内,目标用户即便控制了目标账号,也无法修改或禁用触发任务,到时间会自动执行权限撤销操作。
注意事项
- 若目标用户是AWS根用户,以上方案均无法生效(根用户权限不受IAM/SCP限制);
- 操作前务必在测试环境验证逻辑,避免误操作影响业务。
内容的提问来源于stack exchange,提问作者Neil Cronin
相关产品推荐
相关产品推荐

