本頁說明如何將軟體物料清單 (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.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
- 在 Artifact Registry 中建立 Docker 存放區,並存放 SBOM 所述的容器映像檔。如果您不熟悉 Artifact Registry,請參閱 Docker 快速入門導覽課程。
- 準備好要上傳的 SBOM 檔案,且檔案格式為支援的格式。
-
如果您使用預設 Cloud Storage 值區,請按照下列步驟管理儲存空間值區:
Storage Admin(
roles/storage.admin
) -
如果您要指定 Cloud Storage bucket,請使用下列角色管理儲存空間 bucket:
Storage Object Admin(
roles/storage.objectAdmin
) -
如果 SBOM 參照的附註已存在:
容器分析註記附加者 (
roles/containeranalysis.notes.attacher
) -
如要在目前專案中為 SBOM 參照項目建立新附註:
容器分析附註編輯器(
(roles/containeranalysis.notes.editor
) -
如要建立 SBOM 參照例項:
容器分析例項編輯者(
roles/containeranalysis.occurrences.editor
) - 軟體套件資料交換 (SPDX) 2.2 或 2.3 版
- CycloneDX 1.4 或 1.5 版
- SOURCE:要上傳的 SBOM 檔案路徑。
- URI:SBOM 檔案所描述的 Docker 映像檔 URI。 圖片可以採用標記格式或摘要格式。以標記格式提供的圖片會解析為摘要格式。
--destination
:指定要使用的 Cloud Storage 值區,而非預設值區。--kms-key-version
:提供金鑰版本,用於簽署 SBOM 參照事件酬載。您可以使用這個金鑰驗證 SBOM 的來源。
必要的角色
如要取得建立及管理 Cloud Storage 值區和 SBOM 檔案所需的權限,請要求管理員將專案的下列 IAM 角色授予您:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
支援的格式
SBOM 檔案必須是 JSON 檔案,且採用下列其中一種格式:
上傳 SBOM
使用下列指令上傳 SBOM:
gcloud artifacts sbom load /
--source SOURCE /
--uri URI
其中:
選用標記
舉例來說,下列指令會上傳從已加上標記的圖片 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 bucket 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。