このページでは、ソフトウェア部品構成表(SBOM)ファイルを Cloud Storage にアップロードして、Artifact Registry に保存するコンテナ イメージのコンポーネントを追跡し、証明する方法について説明します。
Cloud Storage の料金については、 料金をご覧ください。
始める前に
-
ログイン Google アカウントにログインします。
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 をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して 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 をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init - SBOM で記述されているコンテナ イメージを含む Docker リポジトリが Artifact Registry にある。Artifact Registry に習熟されていない場合は、 Docker のクイックスタートをご覧ください。
- サポートされている形式のいずれかで、アップロードする SBOM ファイルを用意する。
必要なロール
Cloud Storage バケットと SBOM ファイルの作成と管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。
-
デフォルトの Cloud Storage バケットを使用している場合、ストレージ バケットを管理するには、
ストレージ管理者(
roles/storage.admin) -
Cloud Storage バケットを指定している場合、ストレージ バケットを管理するには、
ストレージ オブジェクト管理者(
roles/storage.objectAdmin) -
SBOM 参照のメモがすでに存在する場合:
Container Analysis メモ添付者 (
roles/containeranalysis.notes.attacher) -
現在のプロジェクトで SBOM 参照オカレンスの新しいメモを作成するには:
Container Analysis メモの編集者(
(roles/containeranalysis.notes.editor) -
SBOM 参照オカレンスを作成するには:
Container Analysis 実行回数の編集者(
roles/containeranalysis.occurrences.editor)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
サポートされているファイル形式
SBOM ファイルは、次のいずれかの形式の JSON ファイルである必要があります。
- Software Package Data Exchange(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 参照オカレンスを作成します。
SBOM は、 Google Cloud コンソールまたは gcloud CLI を使用して表示できます。 SBOM を含む Cloud Storage バケットを見つけるには、 gcloud CLI を使用して SBOM を検索する必要があります。