本页介绍了元数据管理的关键概念,以及元数据管理在安全软件交付链中的重要性。
安全供应链的一个方面是跟踪软件制品的生命周期。出于合规性考虑,即使在制品停用很久之后,可能也需要提供此跟踪信息。为此,您可以生成并存储描述制品或软件资源(容器映像、虚拟机或软件包)相关重要事件的元数据。
借助 Artifact Analysis,您可以存储与资源相关联的元数据信息,以便日后检索这些元数据来审核软件供应链。
制品分析如何存储元数据
Artifact Analysis 基于 Grafeas 构建,后者是一种开源组件元数据 API,可作为集中式可靠来源来跟踪和强制执行政策。构建、审核和合规性工具可以使用 Grafeas 来存储、查询和检索有关软件组件的全面元数据。
由于 Grafeas 是开源的,因此您不会被锁定在特定供应商的平台上。 Grafeas 使用唯一的软件标识符关联元数据。它可将制品存储空间分离出来,因此您可以存储来自多个不同代码库的组件的相关元数据。Artifact Analysis 也遵循相同的原则,您可以将其用作 Artifact Registry 或任何其他位置的软件组件的集中式通用元数据存储区。
Grafeas 模型涉及两个实体:
- 创建存储在备注中的元数据的提供商。
- 用于标识存储在备注中的元数据是否适用于其制品客户。如果是这种情况,元数据会表示为备注的发生实例。
注意
备注是对元数据的简要说明。例如,您可以为 Linux 软件包创建有关特定漏洞的备注。您还可以使用备注来存储有关构建流程中所用构建工具的信息。执行分析的提供商通常拥有和创建备注。希望使用元数据的客户可以识别其项目中出现的备注。
我们建议您将备注和发生实例存储在不同的项目中,以便进行更精细的访问权限控制。
备注只能由备注所有者修改,如果客户有权访问引用备注的发生实例,则具有该备注的读取权限。
出现
发生实例表示在软件制品上发现备注,可以认为是一个备注的实例。例如,与漏洞相关的备注发生实例会描述发现漏洞的软件包和特定补救步骤。另外,与构建详情相关的备注发生实例会描述构建作业所生成的容器映像。
通常,用于存储发生实例的项目与创建备注所在的项目不同。仅应将发生实例的写入权限授予有权将备注关联到该发生实例的用户。任何用户都可拥有发生实例的读取权限。
支持的元数据类型
下表列出了 Artifact Analysis 支持的元数据类型。第三方元数据提供商可以为其客户的映像存储和检索以下所有类型的元数据。
| 元数据类型 | 在 Google Cloud 服务中的使用情况 |
|---|---|
| 漏洞可提供经过审核的文件的漏洞信息。 | Artifact Analysis 会根据外部数据库(其中包含公开披露的安全问题)生成漏洞发现结果。 |
| 构建(提供构建来源的相关信息)。 | 如果您使用 Cloud Build 构建映像,Cloud Build 会生成此元数据,而 Artifact Analysis 会存储相应信息。 |
| 软件包包含映像中所安装软件包的相关信息。 | |
| 发现(包含映像初始扫描的相关信息)。 | Artifact Analysis 只会为漏洞扫描提供此信息。 |
| 认证包含图片认证信息。 | 可以。Binary Authorization 会读取此信息,并可使用此信息来控制部署。 |
| 漏洞评估功能会将上传的 VEX 声明以 Grafeas VulnerabilityAssessment 注释格式存储。 | |
| SBOM 参考提供额外的元数据,帮助您查找和验证 SBOM。 |