Java パッケージを自動的にスキャンする
自動スキャンを有効にする方法、Artifact Registry にコンテナ イメージを push する方法、イメージで見つかった脆弱性の一覧を表示する方法について説明します。
Artifact Analysis は、イメージが Artifact Registry に push されるたびに脆弱性をスキャンします。プラットフォーム管理者とアプリケーション デベロッパーは、この自動スキャン機能を使用して、ソフトウェア配信パイプラインのリスクを特定できます。
このクイックスタートでは、一般公開されているシンプルなパッケージを使用して、パッケージ スキャンの 1 つのタイプを示します。デフォルトでは、スキャン API を有効にすると、Artifact Analysis は複数のパッケージ タイプの脆弱性をスキャンします。 サポートされているパッケージ タイプには、OS、Go、Java(Maven)、Python、Node.js(npm)があります。
始める前に
- アカウントにログインします Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを Google Cloud 作成または選択します。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。ロールを付与する方法を確認する。
-
プロジェクトを作成する Google Cloud :
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、実際の Google Cloud プロジェクト名で置き換えます。
Artifact Registry API と Container Scanning API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する。gcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを Google Cloud 作成または選択します。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。ロールを付与する方法を確認する。
-
プロジェクトを作成する Google Cloud :
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、実際の Google Cloud プロジェクト名で置き換えます。
Artifact Registry API と Container Scanning API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する。gcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com
Artifact Registry で Docker リポジトリを作成する
このクイックスタートのサンプル イメージを保存する Docker リポジトリを作成します。
コンソールで [**リポジトリ**] ページを開きます。 Google Cloud
[リポジトリを作成] をクリックします。
[リポジトリの作成] ページで、次の設定を入力します。
- 名前:
quickstart-docker-repo - 形式: Docker
- モード: 標準
- ロケーション タイプ: リージョン
- リージョン:
us-central1
- 名前:
[作成] をクリックします。
[リポジトリ] ページが表示されます。quickstart-docker-repo リポジトリがリポジトリ リストに追加されます。
認証を構成する
Artifact Registry でイメージを push または pull する前に、Google Cloud CLI を使用して Artifact Registry に対するリクエストを認証するように Docker を構成する必要があります。
Cloud Shell またはローカルシェルで、リージョン us-central1 の Docker リポジトリの認証を設定します。
gcloud auth configure-docker us-central1-docker.pkg.dev
パッケージを取得する
コンテナ イメージを保存するディレクトリに移動します。
イメージをローカル ディレクトリにコピーします。たとえば、Docker を使用して Docker Hub から最新の Jenkins イメージを pull できます。
docker pull jenkins:2.60.3-alpine
リポジトリ名でパッケージにタグを付ける
パッケージを Artifact Registry に push する場合は、イメージを特定の場所に push するように docker push コマンドを構成する必要があります。
次のコマンドを実行して、イメージに quickstart-image:tag1 としてタグ付けします。
docker tag jenkins:2.60.3-alpine \ us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
場所
- PROJECT は あなたの Google Cloud
プロジェクト ID です。
プロジェクト ID にコロン(
:)が含まれている場合は、 ドメインをスコープとするプロジェクトをご覧ください。 us-central1は Artifact Registry リポジトリのリージョンです。docker.pkg.devは Docker リポジトリのホスト名です。quickstart-imageはリポジトリで使用するイメージ名です。 イメージ名は、ローカル イメージ名とは別の名前にできます。tag1は Docker イメージに追加するタグです。タグを指定しない場合は、Docker でデフォルトのタグlatestが適用されます。
イメージを Artifact Registry に push する
Artifact Analysis は、新しいイメージが Artifact Registry にアップロードされると自動的にスキャンします。
イメージを Artifact Registry の Docker リポジトリに push するには、次のコマンドを実行します。
docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
PROJECT を実際の Google Cloud
プロジェクト ID に置き換えます。
プロジェクト ID にコロン(:)が含まれている場合は、
ドメインをスコープとするプロジェクトをご覧ください。
脆弱性スキャンの結果を表示する
クリーンアップ
このページで使用したリソースについて、アカウントに課金されないようにするには、リソースを含むプロジェクトを削除します。 Google Cloud Google Cloud
このガイド用に新しいプロジェクトを作成した場合は、そのプロジェクトを削除できます。- コンソールで [**リソースの管理**] ページに移動します。 Google Cloud
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。