如何在AWS Inspector中屏蔽旧/已淘汰AWS ECR镜像的检测结果?
解决AWS Inspector屏蔽ECR旧镜像检测结果的问题
方案1:用Lambda自动化维护Inspector屏蔽规则
这是最适配你需求的方案——不管仓库多久没更新新镜像,都能精准保留每个仓库最新镜像的检测结果,自动屏蔽其余旧镜像的漏洞报告。
步骤1:配置Lambda触发源
给目标ECR仓库配置镜像推送事件触发Lambda,事件类型选Image pushed to repository,确保Lambda能拿到新镜像的仓库名、镜像摘要(digest)等核心信息。步骤2:编写Lambda核心逻辑
- 解析ECR推送事件,提取目标仓库名称;
- 调用ECR的
DescribeImages接口,按imagePushedAt降序排序,拉取该仓库的最新镜像digest; - 查询Inspector中是否已存在该仓库对应的屏蔽规则;
- 创建或更新屏蔽规则:筛选条件设为
aws.ecr.repository.name = '目标仓库名' AND aws.ecr.image.digest != '最新镜像digest',动作选择SUPPRESS,备注填“屏蔽旧镜像漏洞结果”。
步骤3:配置Lambda权限
给Lambda执行角色附加以下权限:- ECR的
ecr:DescribeImages权限; - Inspector的
inspector2:ListFilters、inspector2:UpdateFilter、inspector2:CreateFilter权限。
- ECR的
方案2:修正Inspector屏蔽规则的筛选逻辑(仅适用于用latest标记最新镜像的场景)
如果你仓库的latest标签始终指向最新镜像,之前的规则失效大概率是筛选逻辑写错了,调整成以下规则即可:
创建Inspector屏蔽规则时,设置筛选条件为:
aws.ecr.repository.name = '你的仓库名' AND resourceTags:ecr-image-tag NOT IN ('latest')
⚠️ 注意:如果latest标签不是始终对应最新镜像,这个方案不适用。
额外提示
- 如果你的镜像用commit哈希或版本号作为标签(无固定latest标签),方案1的自动化逻辑是唯一可靠的选择;
- 可以在Lambda逻辑中扩展,比如保留最近2-3个镜像的检测结果,只需修改拉取ECR镜像时的数量参数即可。
内容的提问来源于stack exchange,提问作者Diogo Melo
相关产品推荐
相关产品推荐

