查看和过滤 SBOM

本文档介绍了如何访问软件物料清单 (SBOM) 记录和相关依赖项元数据,以帮助您了解存储在 Artifact Registry 中的容器映像的组件。

准备工作

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. 将 SBOM 存储在 Cloud Storage 中。请参阅有关生成 SBOM 的说明。

所需的角色

如需获得查看 SBOM 数据和过滤结果所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

在 Google Cloud 控制台中查看 SBOM

如需查看存储在 Artifact Registry 中的容器映像的 SBOM 和相关依赖项元数据,请执行以下操作:

  1. 打开 Artifact Registry 的代码库页面。

    打开“代码库”页面

    该页面会显示您的代码库列表。

  2. 在代码库列表中,点击相应代码库的名称。

    代码库详情页面随之打开,并显示您的映像列表。

  3. 在图片列表中,点击图片名称。

    该页面会显示您的图片摘要列表。

  4. 在映像摘要列表中,点击摘要名称。

    该页面会显示一排标签页,其中概览标签页处于打开状态,显示格式、位置、代码库、虚拟大小和标记等详细信息。

  5. 在标签页行中,点击 Dependencies(依赖项)标签页。

    “依赖项”标签页随即会打开,并显示以下信息:

    • SBOM 部分
    • “许可”部分
    • 可过滤的依赖项列表

SBOM

SBOM 摘要部分会显示以下信息:

  • 文件:可点击的 SBOM 文件名,用于打开 SBOM 在 Cloud Storage 中的保存位置。
  • 类型:所使用的 SBOM 标准的类型,例如软件包数据交换 (SPDX) 或 Cyclone。
  • 版本:所使用的 SBOM 标准的版本。
  • :SBOM 数据的来源,是通过 Artifact Analysis 生成的还是手动上传的。

许可

许可摘要部分会显示一个名为最常见的许可的条形图。这表示依赖项信息中出现次数最多的许可类型。将指针悬停在图表中的某个柱形上时,控制台会显示该许可类型的实例的确切数量。

依赖项

依赖项列表会显示映像摘要的内容,包括:

  • 软件包名称
  • 软件包版本
  • 软件包类型
  • 许可类型

您可以按任一类别过滤依赖项列表。

在 Cloud Build 中查看 SBOM

如果您使用的是 Cloud Build,则可以在 Google Cloud 控制台的安全分析侧边栏中查看映像元数据。

安全性数据分析侧边栏概要介绍了存储在 Artifact Registry 中的工件的构建安全信息。如需详细了解侧边栏以及如何使用 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"

其中:

  • --resource 用于指定要列出 SBOM 文件引用的映像资源 URI。

输出包括以下内容:

  • SBOM 的 Cloud Storage 位置。使用 Cloud Storage 位置时,您可以通过运行 gcloud storage cat 命令在 gcloud CLI 中查看 SBOM。
  • SBOM 是否仍在 Cloud Storage 存储桶中,还是已被移除。
  • SBOM 的哈希值,可用于验证其是否未经修改。

过滤条件

您可以使用以下任意可选标志过滤出特定的 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"

限制

后续步骤