本页介绍了元数据管理的关键概念及其在安全软件交付链中的重要性。
安全供应链的一个方面是跟踪软件工件的生命周期。出于合规性考虑,即使工件已弃用,也可能需要提供此跟踪信息。为此,您可以生成并存储元数据,用于描述与工件或软件资源(容器映像、虚拟机或软件包)相关的重要事件。
借助 Artifact Analysis,您可以存储与资源关联的元数据信息,这些元数据稍后可用于审核软件供应链。
Artifact Analysis 如何存储元数据
Artifact Analysis 基于 Grafeas 构建而成,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 会读取此信息,并可将其用于控制部署。 |
升级,用于说明可用的软件包升级。 | |
合规性,提供合规性检查的相关信息。 | |
DSSE 认证,用于描述使用 Dead Simple Signing Envelope 签名的认证。 | |
漏洞评估会以 Grafeas VulnerabilityAssessment 备注格式存储上传的 VEX 语句。 | |
SBOM 参考提供了额外的元数据,可帮助您查找和验证 SBOM。 |