このドキュメントでは、ソフトウェア部品構成表(SBOM)レコードと関連する依存関係メタデータにアクセスして、Artifact Registry に保存されているコンテナ イメージのコンポーネントを理解する方法について説明します。
始める前に
-
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 Container Analysis, Artifact Registry 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 Container Analysis, Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- SBOM を Cloud Storage に保存します。SBOM の生成の手順をご覧ください。
必要なロール
SBOM データの表示と結果のフィルタリングに必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。
-
Container Analysis のオカレンスの閲覧者 (
roles/containeranalysis.occurrences.viewer
) -
Service Usage ユーザー(
roles/serviceusage.serviceUsageConsumer
) -
Artifact Registry 読み取り(
roles/artifactregistry.reader
) -
SBOMS を確認するには:
Storage オブジェクト閲覧者(
roles/storage.objectViewer
)- 特定の Cloud Storage バケット
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Google Cloud コンソールで SBOM を表示する
Artifact Registry に保存されているコンテナ イメージの SBOM と関連する依存関係メタデータを表示するには:
Artifact Registry の [リポジトリ] ページを開きます。
リポジトリのリストが表示されます。
リポジトリ リストで、リポジトリ名をクリックします。
[リポジトリの詳細] ページが開き、イメージのリストが表示されます。
画像リストで、イメージ名をクリックします。
ページにイメージ ダイジェストのリストが表示されます。
イメージ ダイジェストのリストで、ダイジェスト名をクリックします。
このページには、タブの行が表示されます。[概要] タブが開いており、形式、ロケーション、リポジトリ、仮想サイズ、タグなどの詳細が表示されます。
タブの行で、[依存関係] タブをクリックします。
[依存関係] タブが開き、次の情報が表示されます。
- SBOM セクション
- [ライセンス] セクション
- フィルタ可能な依存関係のリスト
SBOM
[SBOM] の概要セクションには、次の情報が表示されます。
- ファイル: クリック可能な SBOM ファイル名。Cloud Storage で SBOM が保存されている場所を開きます。
- タイプ: 使用される SBOM 標準のタイプ(Software Package Data Exchange(SPDX)や Cyclone など)。
- バージョン: 使用されている SBOM 標準のバージョン。
- 生成元: SBOM データの送信元(アーティファクト分析によって生成されたか、手動でアップロードされたか)。
ライセンス
[ライセンス] の概要セクションには、[最も一般的なライセンス] という棒グラフが表示されます。これは、依存関係情報に最も頻繁に表示されるライセンスのタイプを表します。グラフの棒にポインタを合わせると、そのライセンスタイプのインスタンスの正確な数値がコンソールに表示されます。
依存関係
依存関係のリストには、次のようなイメージ ダイジェストの内容が表示されます。
- パッケージ名
- パッケージのバージョン
- パッケージ タイプ
- ライセンスの種類
依存関係のリストをこれらのカテゴリでフィルタできます。
Cloud Build で SBOM を表示する
Cloud Build を使用している場合は、Google Cloud コンソールの [セキュリティ分析情報] サイドパネルでイメージのメタデータを表示できます。
[セキュリティ分析情報] サイドパネルには、Artifact Registry に保存されているアーティファクトのビルド セキュリティ情報の概要が表示されます。サイドパネルの詳細と、Cloud Build を使用してソフトウェア サプライ チェーンを保護する方法については、ビルドのセキュリティ分析情報を表示するをご覧ください。
gcloud CLI を使用して SBOM を表示する
gcloud artifacts sbom list
コマンドを使用して、Cloud Storage に保存されている SBOM を検索します。この検索は、Artifact Analysis によって生成された SBOM や、サポートされている形式を使用して別のソースからアップロードする SBOM など、Cloud Storage 内のすべての SBOM に適用されます。
gcloud コマンドとフィルタを使用して結果を絞り込み、特定のセキュリティ上の懸念事項やコンプライアンス リクエストに最も関連性の高い SBOM に焦点を当てることができます。
たとえば、次のコマンドは、Artifact Registry に保存されている Docker イメージ my-image
の SBOM に関する情報を取得する方法を示しています。
gcloud artifacts sbom list \
--resource="us-east1-docker.pkg.dev/my-project/my-repo/my-image:1.0"
ここで
--resource
には、SBOM ファイルの参照を一覧表示するイメージ リソース URI を指定します。
出力には次のものが含まれます。
- SBOM の Cloud Storage のロケーション。Cloud Storage の場所を使用して、gcloud storage cat コマンドを実行すると、gcloud CLI で SBOM を表示できます。
- SBOM が Cloud Storage バケットにまだ存在するのか、削除されたのか。
- SBOM のハッシュ。変更されていないことを確認するために使用できます。
フィルタ
次のいずれかのオプション フラグを使用して、特定の SBOM をフィルタリングできます。
フラグ | 目的 | 入力値 |
---|---|---|
--dependency |
リソースに指定したパッケージがインストールされているすべての SBOM ファイル参照を一覧表示します。サポートされているパッケージ タイプをご覧ください。 | インストール済みのパッケージの名前 |
--resource |
特定のイメージに関連する SBOM ファイルの参照を一覧表示します。 | リソースの URI |
--resource-prefix |
リソースパスの接頭辞に関連する SBOM ファイルの参照を一覧表示します。 | 検索の接頭辞として使用されるリソースパス |
フィルタリングの例
リソース URI で結果をフィルタします。
gcloud artifacts sbom list \
--resource="us-east1-docker.pkg.dev/project/repo/my-image@sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356"
リソース接頭辞でフィルタする:
gcloud artifacts sbom list \
--resource-prefix="us-east1-docker.pkg.dev/project/repo"
制限事項
- ライセンス情報は、OS パッケージとサポートされている言語パッケージでのみ提供されます。
次のステップ
- SBOM を生成する。
- VEX ステートメントの使用方法を学習する。