このドキュメントでは、コンテナ イメージの依存関係を一覧表示するソフトウェア部品構成表(SBOM)を作成して保存する方法について説明します。
Artifact Registry にコンテナ イメージを保存し、Artifact Analysis で脆弱性をスキャンすると、Google Cloud CLI を使用して SBOM を生成できます。
脆弱性スキャンの使用については、自動スキャンと料金をご覧ください。
Artifact Analysis は SBOM を Cloud Storage に保存します。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, Container Scanning APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, Container Scanning APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init - Artifact Registry に Docker リポジトリを作成し、コンテナ イメージをリポジトリに push します。Artifact Registry に習熟されていない場合は、Docker のクイックスタートをご覧ください。
必要なロール
Cloud Storage バケットの管理と SBOM ファイルのアップロードに必要な権限を取得するには、プロジェクトに対するストレージ管理者 (roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
SBOM ファイルを生成する
SBOM ファイルを生成するには、次のコマンドを使用します。
gcloud artifacts sbom export --uri=LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_NAME
場所
- LOCATION は、Artifact Registry リポジトリのロケーションです。
- PROJECT_ID は、Artifact Registry リポジトリを含むプロジェクトの ID です。
- REPOSITORY は、イメージを含む Artifact Registry リポジトリの名前です。
- IMAGE_NAME はイメージの名前です。画像は、タグ形式またはダイジェスト形式のいずれかにできます。タグ形式で指定されたイメージは、ダイジェスト形式に解決されます。
Artifact Analysis は SBOM を Cloud Storage に保存します。イメージと同じリージョンの Cloud Storage バケットがまだない場合は、Cloud Storage が artifactanalysis-<var>REGION</var>-<var>PROJECT_NUMBER</var> という名前のバケットを作成し、そのバケットに SBOM を送信します。そのリージョンの追加の SBOM は同じバケットに送信されます。
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 を無効にして、脆弱性スキャンに対する課金を停止する必要があります。