SBOM を生成して保存する

このドキュメントでは、コンテナ イメージの依存関係を一覧表示するソフトウェア部品構成表(SBOM)を作成して保存する方法について説明します。

コンテナ イメージを Artifact Registry に保存し、Artifact Analysis で脆弱性をスキャンすると、Google Cloud CLI を使用して SBOM を生成できます。

脆弱性スキャンの使用については、 自動スキャン料金をご覧ください。

Artifact Analysis は SBOM を Cloud Storage に保存します。Cloud Storage の費用については、料金をご覧ください。

始める前に

  1. ログイン Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します

  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Container Analysis, Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Google Cloud CLI をインストールします。

  6. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  7. gcloud CLI を初期化するには、次のコマンドを実行します:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Artifact Registry, Container Analysis, Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Google Cloud CLI をインストールします。

  12. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  13. gcloud CLI を初期化するには、次のコマンドを実行します:

    gcloud init
  14. Artifact Registry に Docker リポジトリを作成し、コンテナ イメージをリポジトリに push します。Artifact Registry に慣れていない場合は、 Docker クイックスタートをご覧ください。

必要なロール

Cloud Storage バケットを管理して SBOM ファイルをアップロードするために必要な権限を取得するには、プロジェクトに対するストレージ管理者 roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

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

SBOM ファイルを生成する

SBOM ファイルを生成するには、次のコマンドを使用します。

gcloud artifacts sbom export --uri=URI

場所

  • URI は、SBOM ファイルが記述する Artifact Registry イメージ URI です(us-east1-docker.pkg.dev/my-image-repo/my-image など)。イメージは、タグ形式またはダイジェスト形式にできます。タグ形式で提供されるイメージは、ダイジェスト形式に解決されます。

Artifact Analysis は SBOM を Cloud Storage に保存します。

SBOM は、 Google Cloud コンソールまたは gcloud CLI を使用して表示できます。 SBOM が含まれている Cloud Storage バケットを見つけるには、 gcloud CLI を使用して SBOM を検索する必要があります

脆弱性スキャンなしで SBOM を生成する

SBOM を生成するが、プロジェクトの継続的な脆弱性スキャンは不要な場合は、イメージを Artifact Registry に push する前に Container Scanning API を有効にすると、SBOM をエクスポートできます。イメージが Artifact Registry に push され、SBOM をエクスポートしたら、Container Scanning API を無効にして、以降の脆弱性スキャンに対する課金を回避する必要があります。

次のステップ