AWS ECR生产镜像缺失,如何查询删除时间及操作者?
排查AWS ECR镜像删除事件的可行方向
1. 检查AWS CloudTrail数据事件
- 默认CloudTrail仅记录管理事件,ECR镜像删除属于数据事件,需确认是否已为目标ECR仓库开启数据事件追踪
- 在CloudTrail控制台筛选事件名称为
BatchDeleteImage或DeleteImage,同时指定对应ECR仓库ARN作为资源条件 - 事件详情中的
userIdentity字段可获取操作者身份(IAM用户/角色、根用户等),eventTime字段即为删除时间 - 若未找到对应事件,需检查CloudTrail在镜像删除时段是否正常运行,或日志存储的S3桶是否有日志被清理
2. 核查Bitbucket Pipelines执行记录
- 检查所有Pipeline的历史执行日志,确认是否有脚本包含
aws ecr batch-delete-image或aws ecr delete-image命令 - 重点排查涉及生产环境镜像管理、或近期修改过的Pipeline任务,确认是否存在误操作删除目标镜像的情况
- 验证Pipeline使用的AWS IAM角色是否具备ECR镜像删除权限,排查自动化流程误删的可能
3. 梳理IAM权限与访问轨迹
- 列出所有拥有ECR
DeleteImage或BatchDeleteImage权限的IAM用户/角色,通过CloudTrail管理事件或IAM访问顾问查看其近期访问记录 - 排查是否有临时STS凭证(比如角色临时身份)被用于删除操作,这类操作会在CloudTrail的
userIdentity字段中显示角色信息及请求来源
4. 查询ECR仓库镜像关联痕迹
- 若目标镜像有明确标签,执行CLI命令:
aws ecr describe-images --repository-name <你的仓库名> --image-ids image-tag=<目标标签>,部分场景下可能残留标签关联的事件记录 - 若使用镜像摘要(digest)标识,替换为
--image-ids image-digest=<目标镜像摘要>查询,确认是否有相关操作痕迹留存
5. 排查第三方自动化工具
- 检查是否有Terraform、Ansible等基础设施工具配置了该ECR仓库的操作权限,查看这些工具的执行日志
- 确认团队成员是否通过本地AWS CLI或其他工具执行过镜像删除操作,可同步询问团队内近期的镜像管理动作
内容的提问来源于stack exchange,提问作者amatisea
相关产品推荐
相关产品推荐

