本頁說明如何將軟體物料清單 (SBOM) 檔案上傳至 Cloud Storage,以追蹤及驗證您儲存在 Artifact Registry 中的容器映像檔元件。
如要瞭解 Cloud Storage 的價格,請參閱「價格」一文。
事前準備
-
登入 Google 帳戶。
如果沒有帳戶,請 申請新帳戶。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Container Analysis APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Container Analysis APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init - 在 Artifact Registry 中建立 Docker 存放區,並存放 SBOM 所述的容器映像檔。如果您不熟悉 Artifact Registry,請參閱 Docker 快速入門導覽課程。
- 準備好要上傳的 SBOM 檔案,且檔案格式為支援的格式。
必要的角色
如要取得建立及管理 Cloud Storage bucket 和 SBOM 檔案所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
如果您使用預設 Cloud Storage 值區,請按照下列步驟管理儲存空間值區:
儲存空間管理員(
roles/storage.admin) -
如果您要指定 Cloud Storage 值區,請使用下列角色管理儲存空間值區:
Storage Object Admin(
roles/storage.objectAdmin) -
如果 SBOM 參照的附註已存在:
容器分析註記連結者 (
roles/containeranalysis.notes.attacher) -
如要在目前專案中為 SBOM 參照例項建立新附註,請按照下列步驟操作:
容器分析附註編輯器(
(roles/containeranalysis.notes.editor) -
如要建立 SBOM 參照例項:
容器分析例項編輯者(
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 bucket,而非預設 bucket。--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。