本文档介绍了如何访问软件物料清单 (SBOM) 记录和相关依赖项元数据,以帮助您了解存储在 Artifact Registry 中的容器映像的组件。
准备工作
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Analysis, Artifact Registry APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Analysis, Artifact Registry APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 将 SBOM 存储在 Cloud Storage 中。请参阅有关生成 SBOM 的说明。
-
Container Analysis Occurrences Viewer (
roles/containeranalysis.occurrences.viewer
) -
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) -
Artifact Registry Reader (
roles/artifactregistry.reader
) -
如需验证 SBOM,请授予以下角色:
Storage Object Viewer (
roles/storage.objectViewer
) - 特定 Cloud Storage 存储桶 打开 Artifact Registry 的代码库页面。
该页面会显示您的代码库列表。
在代码库列表中,点击代码库名称。
系统会打开代码库详情页面,并显示您的映像列表。
在映像列表中,点击映像名称。
该页面会显示您的映像摘要列表。
在映像摘要列表中,点击摘要名称。
该页面会显示一行标签页,其中概览标签页处于打开状态,显示格式、位置、代码库、虚拟大小和标记等详细信息。
在标签页行中,点击依赖项标签页。
系统会打开“依赖项”标签页,并显示以下信息:
- “SBOM”部分
- “许可”部分
- 可过滤的依赖项列表
- 文件:可点击的 SBOM 文件名,点击后会打开您的 SBOM 在 Cloud Storage 中的保存位置。
- 类型:所使用的 SBOM 标准的类型,例如软件包数据交换 (SPDX) 或 Cyclone。
- 版本:所用 SBOM 标准的版本。
- 生成方:SBOM 数据的来源,无论是通过 Artifact Analysis 生成还是手动上传。
- 软件包名称
- 软件包版本
- 软件包类型
- 许可类型
--resource
用于指定要列出 SBOM 文件引用的映像资源 URI。- SBOM 的 Cloud Storage 位置。使用 Cloud Storage 位置,您可以在 gcloud CLI 中运行 gcloud storage cat 命令来查看 SBOM。
- SBOM 是否仍位于 Cloud Storage 存储桶中,或者是否已被移除。
- SBOM 的哈希,可用于验证其是否被修改。
- 许可信息仅针对操作系统软件包和受支持的语言软件包提供。
所需的角色
如需获得查看 SBOM 数据和过滤结果所需的权限,请让管理员为您授予项目的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
在 Google Cloud 控制台中查看 SBOM
如需查看存储在 Artifact Registry 中的容器映像的 SBOM 和相关依赖项元数据,请执行以下操作:
SBOM
SBOM 摘要部分会显示以下信息:
许可
许可摘要部分会显示一个名为最常见的许可的条形图。这表示依赖项信息中最常出现的许可类型。将指针悬停在图表中的某个柱形上时,控制台会显示相应许可类型的实例的确切数量。
依赖项
依赖项列表会显示映像摘要的内容,包括:
您可以按任意这些类别过滤依赖项列表。
在 Cloud Build 中查看 SBOM
如果您使用的是 Cloud Build,则可以在 Google Cloud 控制台的安全洞见侧边栏中查看映像元数据。
安全性数据洞见侧边栏可提供存储在 Artifact Registry 中的工件的 build 安全信息的高级概览。如需详细了解侧边栏以及如何使用 Cloud Build 帮助保护软件供应链,请参阅查看 build 安全数据分析。
使用 gcloud CLI 查看 SBOM
使用 gcloud artifacts sbom list
命令搜索存储在 Cloud Storage 中的 SBOM。此搜索功能适用于 Cloud Storage 中的所有 SBOM,包括由 Artifact Analysis 生成的 SBOM,以及您选择以支持的格式从其他来源上传的任何 SBOM。
您可以将过滤条件与 gcloud 命令搭配使用,以缩小结果范围,并专注于与特定安全问题或合规性要求最相关的 SBOM。
例如,以下命令演示了如何获取存储在 Artifact Registry 中的 Docker 映像 my-image
的 SBOM 信息:
gcloud artifacts sbom list \
--resource="us-east1-docker.pkg.dev/my-project/my-repo/my-image:1.0"
其中:
输出包括以下内容:
过滤条件
您可以使用以下任何可选标志来过滤特定 SBOM:
标志 | 用途 | 输入值 |
---|---|---|
--dependency |
列出资源安装了指定软件包的所有 SBOM 文件引用。请参阅支持的软件包类型。 | 已安装软件包的名称 |
--resource |
列出与特定映像相关的 SBOM 文件引用。 | 资源 URI |
--resource-prefix |
列出与资源路径前缀相关的 SBOM 文件引用。 | 将用作搜索前缀的资源路径 |
过滤示例
按资源 URI 过滤结果:
gcloud artifacts sbom list \
--resource="us-east1-docker.pkg.dev/project/repo/my-image@sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356"
按资源前缀过滤:
gcloud artifacts sbom list \
--resource-prefix="us-east1-docker.pkg.dev/project/repo"