このページでは、Artifact Registry に保存するコンテナ イメージのコンポーネントを追跡して証明するために、ソフトウェア部品構成表(SBOM)ファイルを Cloud Storage にアップロードする方法について説明します。
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
- SBOM で記述されているコンテナ イメージを含む Docker リポジトリが Artifact Registry にある。Artifact Registry に習熟していない場合は、Docker のクイックスタートをご覧ください。
- サポートされている形式のいずれかでアップロードする SBOM ファイルを用意します。
必要なロール
Cloud Storage バケットと SBOM ファイルの作成と管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。
-
デフォルトの Cloud Storage バケットを使用している場合、ストレージ バケットを管理するには: 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 を検索する必要があります。