Java パッケージを自動的にスキャンする

自動スキャンを有効にする方法、Artifact Registry にコンテナ イメージを push する方法、イメージで見つかった脆弱性の一覧を表示する方法について説明します。

Artifact Analysis は、イメージが Artifact Registry に push されるたびに脆弱性をスキャンします。プラットフォーム管理者とアプリケーション デベロッパーは、この自動スキャン機能を使用して、ソフトウェア配信パイプラインのリスクを特定できます。

このクイックスタートでは、一般公開されているシンプルなパッケージを使用して、パッケージ スキャンの 1 つのタイプを示します。デフォルトでは、スキャン API を有効にすると、Artifact Analysis は複数のパッケージ タイプの脆弱性をスキャンします。 サポートされているパッケージ タイプには、OS、Go、Java(Maven)、Python、Node.js(npm)があります。

始める前に

  1. アカウントにログインします Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud CLI をインストールします。

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

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

    gcloud init
  5. プロジェクトを 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 プロジェクト名で置き換えます。

  6. プロジェクトに対して課金が有効になっていることを確認します Google Cloud 。

  7. 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
  8. Google Cloud CLI をインストールします。

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

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

    gcloud init
  11. プロジェクトを 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 プロジェクト名で置き換えます。

  12. プロジェクトに対して課金が有効になっていることを確認します Google Cloud 。

  13. 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 リポジトリを作成します。

  1. コンソールで [**リポジトリ**] ページを開きます。 Google Cloud

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

  2. [リポジトリを作成] をクリックします。

  3. [リポジトリの作成] ページで、次の設定を入力します。

    • 名前: quickstart-docker-repo
    • 形式: Docker
    • モード: 標準
    • ロケーション タイプ: リージョン
    • リージョン: us-central1
  4. [作成] をクリックします。

[リポジトリ] ページが表示されます。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

パッケージを取得する

  1. コンテナ イメージを保存するディレクトリに移動します。

  2. イメージをローカル ディレクトリにコピーします。たとえば、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

このガイド用に新しいプロジェクトを作成した場合は、そのプロジェクトを削除できます。

  1. コンソールで [**リソースの管理**] ページに移動します。 Google Cloud

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。

次のステップ