作者:Matt Farina
当试图决定使用哪些制品时,了解一些关于制品安全性的信息是很有用的。使用Artifact Hub[1],可以看到基于容器的制品的安全扫描,比如基于 Operator Framework OLM 的操作器、一些 Helm Charts、OPA 策略和 Tinkerbell 操作。
当一个操作器包含一个可以被扫描的镜像时,最后一次扫描的镜像,和访问完整的报告可以在侧边栏中找到。下图为Starboard Operator[2],由社区操作员提供,显示了一份没有漏洞的报告。
注意:SCRATCH 镜像,例如那些没有底层,只包含一个二进制文件的镜像,以及使用最新标记的镜像不会被扫描。
Helm charts 的情况,就像基于 OLM 的操作器一样,可以选择进行镜像扫描和提供报告。下面的tavern[3] chart 提供了一个示例,说明了一份没有漏洞的报告。与 OLM 操作器一样,它显示一个等级、执行最后一次扫描的时间以及查看完整报告的能力。
Helm charts 并不能提供一种简单的方法来获取所有可能在 chart 中使用的镜像。我们不可能知道如何在所有可能的配置中找到所有的图表来检测其中的镜像。为了使 Artifact Hub 能够发现镜像,chart 作者需要在 Chart.yaml 的注释中列出它们。格式示例如下:
annotations:
artifacthub.io/images: |
- name: img1
image: repo/img1:1.0.0
- name: img2
image: repo/img2:2.0.0
你可以在Helm 支持的注释文档[4]中了解更多关于列出镜像的信息。
安全报告是使用Trivy[5]和定期扫描生成的。扫描仪检查未扫描的镜像。7 天前最后一次扫描的镜像会被重新扫描,即使没有更改包。这将使报告显示新发现的 CVE 的检测。
有些镜像无法被扫描,比如在一个 scratch 容器中使用二进制文件的镜像,或者使用 latest 标记的镜像。在这些情况下,将不显示报告。
你可以在文档中了解有关安全报告[6]的更多信息。
[1]
Artifact Hub: https://artifacthub.io/
[2]
Starboard Operator: https://artifacthub.io/packages/olm/community-operators/starboard-operator
[3]
tavern: https://artifacthub.io/packages/helm/buttahtoast/tavern
[4]
Helm支持的注释文档: https://artifacthub.io/docs/topics/annotations/helm/#supported-annotations
[5]
Trivy: https://github.com/aquasecurity/trivy
[6]
安全报告: https://artifacthub.io/docs/topics/security_report/