コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。
クイックスタート: アプリケーションをビルドしてセキュリティ分析情報を表示する

アプリケーションをビルドしてセキュリティ分析情報を表示する

このクイックスタートでは、アプリケーションをビルドする方法と、Google Cloud コンソールの Software Delivery Shield の [セキュリティ分析情報] パネルで、ビルドのセキュリティ分析情報を表示する方法について説明します。

次のことを行います。

  • Cloud Build を使用して Java アプリケーションをビルドし、コンテナ化し、コンテナ イメージを Artifact Registry Docker リポジトリに push します。
  • ビルドについて次のセキュリティ分析情報を表示します。

    • ソフトウェア アーティファクトの サプライチェーン レベル(SLSA)のレベル。SLSA 仕様 に従って、ソフトウェア ビルドプロセスの成熟度を示します。
    • ビルド アーティファクトの脆弱性
    • ビルドの来歴。ビルドに関する検証可能なメタデータのコレクションです。これには、ビルドされたイメージのダイジェスト、入力ソースの場所、ビルド ツールチェーン、ビルドステップ、ビルド時間などの詳細情報が含まれます。

始める前に

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

    • Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID
    • 作成した Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID
  4. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  5. Cloud Build, Artifact Registry, and Container Scanning API を有効にします。

    gcloud services enable cloudbuild.googleapis.com artifactregistry.googleapis.com containerscanning.googleapis.com
  6. Google Cloud CLI をインストールして初期化します。
  7. Google Cloud プロジェクトを作成または選択します。

    • Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID
    • 作成した Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID
  8. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  9. Cloud Build, Artifact Registry, and Container Scanning API を有効にします。

    gcloud services enable cloudbuild.googleapis.com artifactregistry.googleapis.com containerscanning.googleapis.com

Artifact Registry で Docker リポジトリを作成する

  1. ロケーション us-central1containers という名前の Docker リポジトリを作成し、「Docker repository」という説明を指定します。

    gcloud artifacts repositories create containers \
        --repository-format=docker \
        --location=us-central1 --description="Docker repository"
    
  2. リポジトリが作成されたことを確認します。

    gcloud artifacts repositories list
    

    表示されたリポジトリのリストに containers が表示されます。

サンプル アプリケーションを準備する

ビルドしてコンテナ化するには、サンプル ソースコードが必要です。このセクションでは、Java コードサンプルを含む既存のソース リポジトリのクローンを作成します。

  1. Java コードサンプルを含むリポジトリのクローンを作成します。

    git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git
    cd software-delivery-shield-demo-java/backend
    

アプリケーションのビルド

  1. Cloud Build を使用して Java アプリケーションをビルドし、コンテナ化します。次のコマンドは、Java アプリケーションをビルドしてコンテナ化し、ビルドしたコンテナを Artifact Registry Docker リポジトリに保存します。

    gcloud builds submit --config=cloudbuild.yaml --region=us-central1
    

    ビルドが完了すると、次のような成功ステータスのメッセージが表示されます。

    DONE
    -----------------------------------------------------------------------------
    ID: 3e08565f-7f57-4449-bc68-51c46cf33d03
    CREATE_TIME: 2022-09-19T15:41:07+00:00
    DURATION: 54S
    SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz
    IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart
    STATUS: SUCCESS
    

セキュリティ分析情報を表示する

Google Cloud コンソールの Cloud Build UI には、Software Delivery Shield の [セキュリティ分析情報] パネルがあります。このパネルには、SLSA レベル、依存関係における脆弱性、ビルドの来歴など、ビルドに関連するセキュリティ情報が表示されます。

Software Delivery Shield の [セキュリティ分析情報] パネルを表示するには:

  1. Google Cloud コンソールで [ビルド履歴] ページを開きます。

    [ビルド履歴] ページを開く

  2. 実際のプロジェクトを選択し、[開く] をクリックします。

  3. [リージョン] プルダウン メニューで、[us-central1] を選択します。

  4. 最新のビルドをクリックします。

    [ビルドの詳細] ページが表示されます。

  5. [ビルド アーティファクト] タブをクリックします。

    [ビルド アーティファクト] タブのスクリーンショット

  6. 作成したコンテナ イメージが含まれる行を見つけ、[セキュリティ分析情報] 列で [表示] をクリックします。

    [表示] ボタンのスクリーンショット

ビルドの [セキュリティ分析情報] パネルが表示されます。

Software Delivery Shield パネルのスクリーンショット

このパネルには、次の情報が表示されます。

  • SLSA レベル: このビルドは SLSA レベル 3 を達成しています。[詳細] リンクをクリックして、このセキュリティ レベルの意味を確認してください。

  • 脆弱性: アーティファクトに見つかった脆弱性。イメージ名(java-guestbook-backend)をクリックすると、脆弱性がスキャンされたアーティファクトが表示されます。

  • ビルドの詳細: ビルダーやログを表示するためのリンクなど、ビルドの詳細。

  • ビルドの来歴: ビルドの来歴。

クリーンアップ

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

  1. Container Scanning API を無効にします。

    gcloud services disable containerscanning.googleapis.com --force
    
  2. Artifact Registry リポジトリを削除します。

    gcloud artifacts repositories delete containers \
        --location=us-central1 --async
    

    このクイックスタートで作成したリポジトリの削除は完了です。

次のステップ