如何检查AWS访问密钥是否仍在使用以确认可安全删除
确认旧IAM访问密钥可安全删除的操作步骤
1. 优先查询IAM官方统计的密钥最后使用记录
- 进入IAM控制台,找到对应持有旧密钥的IAM用户,切换到「安全凭证」标签页,定位到旧访问密钥条目,查看最后使用时间、最后使用的服务两个字段,该数据覆盖AWS全服务的调用记录,覆盖范围比手动检索CloudTrail更全面。
- 若使用CLI查询,执行命令:
aws iam get-access-key-last-used --access-key-id <替换为旧密钥的Access Key ID>
返回结果中的LastUsedDate为最后一次调用时间,同时会返回调用所属区域、调用服务名称,可快速缩小使用场景范围。
2. 溯源当前观测到的DescribeTags调用
在CloudTrail控制台按以下条件筛选事件,定位调用来源:
- 筛选条件:事件源为
ec2.amazonaws.com、事件名称为DescribeTags、访问密钥ID匹配旧密钥AKID,拉取最近7天的事件列表 - 查看每条事件的
userAgent字段:- 若
userAgent包含CloudWatch Agent标识,说明你部署CloudWatch Agent的EC2实例未完成配置更新,需逐台检查实例上的/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml、实例操作系统的~/.aws/credentials文件,确认是否还留存旧密钥配置 - 若
userAgent为其他SDK、运维工具标识,需排查硬编码密钥的场景:包括CI/CD任务配置、第三方监控工具、运维人员本地凭证文件、AWS Parameter Store/Secrets Manager中存储的历史密钥版本。
- 若
3. 灰度验证无活跃使用
- 先将旧密钥设置为禁用状态(不要直接删除),禁用后所有用该密钥的请求都会返回403错误,你可以在CloudTrail中筛选AccessDenied事件、关联旧密钥AKID,验证是否还有活跃调用。
- 观察周期建议不少于7天,覆盖周级别的定时任务场景,若期间未出现关联旧密钥的权限报错、也无相关AccessDenied事件记录,即可确认旧密钥无活跃使用。
注意:如果你的CloudWatch Agent是通过IAM实例角色而非静态密钥配置的,需要额外检查是否有其他共享该IAM用户的业务场景在使用旧密钥。
内容的提问来源于stack exchange,提问作者Ravindra Kumar
相关产品推荐
相关产品推荐

