本页介绍了如何将软件清单 (SBOM) 文件上传到 Cloud Storage,以帮助跟踪和证明您存储在 Artifact Registry 中的容器映像的组件。
如需了解 Cloud Storage 价格,请参阅价格。
准备工作
-
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 Artifact Registry, Container Analysis APIs.
- Install the Google Cloud CLI.
-
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 Artifact Registry, Container Analysis APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 在 Artifact Registry 中有一个包含 SBOM 中所述容器映像的 Docker 仓库。如果您不熟悉 Artifact Registry,请参阅 Docker 快速入门。
- 准备好采用支持的格式上传的 SBOM 文件。
所需的角色
如需获得创建和管理 Cloud Storage 存储分区和 SBOM 文件所需的权限,请让管理员向您授予项目的以下 IAM 角色:
-
如果您使用的是默认的 Cloud Storage 存储桶,则需要具备以下权限才能管理存储分区:
Storage Admin(
roles/storage.admin
) -
如果您要指定 Cloud Storage 存储桶,则需要有以下角色才能管理存储分区:
Storage Object Admin(
roles/storage.objectAdmin
) -
如果 SBOM 参考文档已有备注:
Container Analysis Notes Attacher (
roles/containeranalysis.notes.attacher
) -
如需为当前项目中的 SBOM 引用出现情况创建新备注,请执行以下操作:
Container Analysis Notes Editor(
(roles/containeranalysis.notes.editor
) -
如需创建 SBOM 引用实例,请执行以下操作:
Container Analysis Occurrences Editor(
roles/containeranalysis.occurrences.editor
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
支持的格式
SBOM 文件必须为采用以下某种格式的 JSON 文件:
- 软件包数据交换 (SPDX) 版本 2.2 或 2.3
- CycloneDX 1.4 或 1.5 版
上传 SBOM
使用以下命令上传 SBOM:
gcloud artifacts sbom load /
--source SOURCE /
--uri URI
其中:
- SOURCE:要上传的 SBOM 文件的路径。
- URI:SBOM 文件描述的 Docker 映像的 URI。图片可以是代码格式或摘要格式。以标记格式提供的图片将解析为摘要格式。
可选标志
--destination
:指定要使用的 Cloud Storage 存储桶(而不是默认存储分区)。--kms-key-version
:提供用于对 SBOM 引用出现情况载荷进行签名的密钥版本。您可以使用此密钥来验证 SBOM 的来源。
例如,以下命令会上传从标记的图片 us-east1-docker.pkg.dev/my-image-repo/my-image
生成的 JSON 文件 my-sbom.bom.json
,并使用以 my-key/cryptoKeyVersions/1
结尾的 KMS 密钥版本对 SBOM 引用出现情况进行签名。
gcloud artifacts sbom load /
--source=my-sbom.bom.json
--uri=us-east1-docker.pkg.dev/my-image-repo/my-image
--kms-key-version=projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1
以下命令会上传与图片摘要 my-local-image@sha256:abcxyz
关联的 JSON 文件 my-sbom.spdx.json
,并将该文件存储在 Cloud Storage 存储桶 gs://my-sbom-bucket
中。
gcloud artifacts sbom load /
--source=my-sbom.spdx.json /
--uri=my-local-image@sha256:abcxyz /
--destination=gs://my-sbom-bucket
Artifact Analysis 会将您的 SBOM 上传到 Cloud Storage,并创建 SBOM 引用出现情况。
您可以使用 Google Cloud 控制台或 gcloud CLI 查看 SBOM。如果您想找到包含 SBOM 的 Cloud Storage 存储桶,则必须使用 gcloud CLI 搜索 SBOM。