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

自動スキャンを有効にする方法、Artifact Registry にコンテナ イメージを push する方法、イメージで検出された脆弱性のリストを確認する方法について学習します。

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

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

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  6. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  11. Enable the Artifact Registry and Container Scanning APIs:

    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 から最新の Ubuntu イメージを pull できます。

    docker pull ubuntu:latest
    

パッケージにリポジトリ名をタグ付けする

パッケージを Artifact Registry に push する場合は、イメージを特定の場所に push するように docker push コマンドを構成する必要があります。

次のコマンドを実行して、イメージに quickstart-image:tag1 としてタグ付けします:

docker tag ubuntu:latest \
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 にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

脆弱性スキャンの結果を表示する

イメージの脆弱性を表示するには:

  1. Artifact Analysis コンソールで Artifact Registry リポジトリのリストを表示します。

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

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

  3. イメージ名をクリックします。

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

    各イメージ ダイジェストの脆弱性の総数が [脆弱性] 列に表示されます。

    脆弱性のあるイメージのスクリーンショット

  4. [脆弱性] 列のリンク先の脆弱性の合計数をクリックします。

    脆弱性のリストが表示されます。

    イメージと脆弱性の詳細のリストのスナップショット

    脆弱性リストには、このイメージがスキャンされた回数、脆弱性の重大度レベル、修正プログラムの可用性、脆弱性が存在するパッケージの名前、パッケージ タイプが表示されます。

  5. 脆弱性ソースから特定の脆弱性の詳細を確認するには、[名前] 列でリンクされた CVE ID をクリックします。

結果を確認するその他の方法

Google Cloud コンソールには、最大 1,200 個の脆弱性が表示されます。イメージに 1, 200 を超える脆弱性がある場合は、gcloud または API を使用して完全なリストを表示します。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Google Cloud プロジェクトとそのリソースをまとめて削除してください。

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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

次のステップ