如何让GCP按需镜像扫描报告显示在Artifacts控制台?
GCP按需镜像扫描报告无法在Artifacts控制台显示的解决方案
问题描述
我在GCP中使用gcloud命令执行按需镜像扫描,命令如下:
gcloud artifacts docker images scan europe-west2-docker.pkg.dev/ORG_NAME/myrepo/python_script@sha256:4e3dd2d724ded3cc434ec9fdc33bdfdab1c0d579430b64c9baf4ecb901115b05 --remote --location=europe
扫描正常完成,且能通过以下命令获取漏洞扫描报告:
gcloud artifacts docker images list-vulnerabilities projects/ORG_NAME/locations/europe/scans/661e3c2a-c27c-6617-9088-80c7d40e14b8
但该报告无法像自动扫描结果那样显示在Artifacts控制台中。已查阅容器分析元数据存储文档,但未找到将报告关联至镜像并在控制台展示的方法,寻求解决方案。
解决步骤
1. 重新扫描时添加导出参数
按需扫描默认不会将结果自动关联到镜像的Container Analysis元数据,导致控制台无法识别。重新执行扫描时添加--export-to-container-analysis参数,让扫描结果自动同步到镜像的关联元数据:
gcloud artifacts docker images scan europe-west2-docker.pkg.dev/ORG_NAME/myrepo/python_script@sha256:4e3dd2d724ded3cc434ec9fdc33bdfdab1c0d579430b64c9baf4ecb901115b05 --remote --location=europe --export-to-container-analysis
该参数会将扫描结果写入Container Analysis的镜像漏洞条目,Artifacts控制台会自动读取这些数据并展示。
2. 手动关联已完成的扫描报告(无需重新扫描)
如果已经完成扫描且不想重新执行,可以通过以下步骤将现有扫描报告关联到镜像:
- 获取镜像的资源名称:
gcloud artifacts docker images describe europe-west2-docker.pkg.dev/ORG_NAME/myrepo/python_script@sha256:4e3dd2d724ded3cc434ec9fdc33bdfdab1c0d579430b64c9baf4ecb901115b05 --format="value(name)" - 获取扫描对应的note ID:
gcloud artifacts docker scans describe projects/ORG_NAME/locations/europe/scans/661e3c2a-c27c-6617-9088-80c7d40e14b8 --format="value(noteName)" - 将扫描结果关联到镜像:
gcloud container analysis notes attach --note=[上一步获取的note ID] --resource=[第一步获取的镜像资源名称]
3. 验证结果
执行操作后等待1-2分钟让元数据同步,刷新Artifacts控制台进入对应镜像详情页,即可看到漏洞扫描报告。
关键说明
- 自动扫描默认会将结果写入Container Analysis的镜像关联元数据,因此能在控制台显示;而按需扫描默认关闭了该行为,需要手动开启。
- 使用
--remote参数扫描外部镜像时,需确保镜像的SHA和仓库地址准确,否则关联可能失败。
内容的提问来源于stack exchange,提问作者Ali Raza
相关产品推荐
相关产品推荐

