SBOM を表示、フィルタする

このドキュメントでは、ソフトウェア部品構成表(SBOM)レコードと関連する依存関係メタデータにアクセスして、Artifact Registry に保存されているコンテナ イメージのコンポーネントを理解する方法について説明します。

始める前に

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. SBOM を Cloud Storage に保存します。SBOM の生成の手順をご覧ください。

必要なロール

SBOM データの表示と結果のフィルタリングに必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Google Cloud コンソールで SBOM を表示する

Artifact Registry に保存されているコンテナ イメージの SBOM と関連する依存関係メタデータを表示するには:

  1. Artifact Registry の [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

    リポジトリのリストが表示されます。

  2. リポジトリ リストで、リポジトリ名をクリックします。

    [リポジトリの詳細] ページが開き、イメージのリストが表示されます。

  3. 画像リストで、イメージ名をクリックします。

    ページにイメージ ダイジェストのリストが表示されます。

  4. イメージ ダイジェストのリストで、ダイジェスト名をクリックします。

    このページには、タブの行が表示されます。[概要] タブが開いており、形式、ロケーション、リポジトリ、仮想サイズ、タグなどの詳細が表示されます。

  5. タブの行で、[依存関係] タブをクリックします。

    [依存関係] タブが開き、次の情報が表示されます。

    • 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"

制限事項

次のステップ