盘点才是难点
多数组织知道谁有管理员权限,但较少能列出每个服务账号、CI 密钥、委托角色和被遗忘的承包商账号。从身份提供方和云 IAM 导出,再对账。还包括存放在 CI 变量和部署工具中的凭据;它们即使从不通过浏览器登录,也是生产身份。
aws iam list-users --query 'Users[].{User:UserName,Created:CreateDate}' --output table
aws iam list-access-keys --query 'AccessKeyMetadata[].{User:UserName,Key:AccessKeyId,Status:Status}' --output table
每家云都有等价命令。关键输出是一张可连接的表:身份、负责人、角色、最后活动和凭据年龄。没有最后活动,审查就变成人气投票,而不是基于证据的清理。
最小权限必须可检验
名为 admin 且 Action: "*" 的角色不是审查结果。把授予的权限与代表性窗口内审计日志记录的操作比较,移除未使用的通配符,并把人类访问放到 SSO 和短期会话之后。自动化优先使用工作负载身份或短期令牌,而不是静态密钥。
紧急通道是设计的一部分
移除权限时可能误删应急路径。保留一个有记录的 break-glass 身份,要求强认证、使用时告警、用后复审。要在演练中测试它,而不是在事故中第一次使用。
让下一次审查必然发生
记录审查日期、负责人和证据。把下一次审查放进日历并指定责任人。依赖某人记忆的审查不会发生。把过期账号数和长期密钥数作为指标,使两次审查之间的趋势可见。