アプリケーションをビルドしてセキュリティ分析情報を表示する
このクイックスタートでは、アプリケーションをビルドする方法と、Google Cloud コンソールの Software Delivery Shield の [セキュリティ分析情報] パネルで、ビルドのセキュリティ分析情報を表示する方法について説明します。
次のことを行います。
- Cloud Build を使用して Java アプリケーションをビルドおよびコンテナ化し、そのコンテナ イメージを Artifact Registry Docker リポジトリに push します。
ビルドに関する次のセキュリティ分析情報を表示します。
- ソフトウェア アーティファクトのためのサプライチェーン レベル(SLSA)のレベル。SLSA 仕様に従って、ソフトウェア ビルドプロセスの成熟度を示します。
- ビルド アーティファクトの脆弱性。
- ビルド アーティファクトのソフトウェア部品構成表(SBOM)。
- ビルドの来歴。ビルドに関する検証可能なメタデータのコレクションです。これには、ビルドされたイメージのダイジェスト、入力ソースの場所、ビルド ツールチェーン、ビルドステップ、ビルド時間などの詳細情報が含まれます。
準備
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:
gcloud services enable cloudbuild.googleapis.com
artifactregistry.googleapis.com containerscanning.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:
gcloud services enable cloudbuild.googleapis.com
artifactregistry.googleapis.com containerscanning.googleapis.com
環境を準備する
プロジェクト ID を環境変数として設定します。
export PROJECT_ID=$(gcloud config get project)
ビルドしてコンテナ化する Java コードサンプルを含むリポジトリのクローンを作成します。
git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git cd software-delivery-shield-demo-java/backend
イメージ用の Artifact Registry リポジトリを作成する
ロケーション
us-central1
にcontainers
という名前の Docker リポジトリを作成し、「Docker repository」という説明を指定します。gcloud artifacts repositories create containers \ --repository-format=docker \ --location=us-central1 --description="Docker repository"
リポジトリが作成されたことを確認します。
gcloud artifacts repositories list
表示されたリポジトリのリストに
containers
が表示されます。
アプリケーションのビルド
Cloud Build を使用して Java アプリケーションをビルドし、コンテナ化します。 次のコマンドは、Java アプリケーションをビルドしてコンテナ化し、ビルドしたコンテナを Artifact Registry Docker リポジトリに保存します。
gcloud builds submit --config=cloudbuild.yaml --region=us-central1
ビルドが完了すると、次のような成功ステータス メッセージが表示されます。
<pre class="none lang-sh">
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
</pre>
ビルドされたイメージの SBOM を生成する
SBOM は、アプリケーションの完全なインベントリであり、ソフトウェアが依存するパッケージを特定します。その内容には、ベンダーのサードパーティ ソフトウェア、内部アーティファクト、オープンソース ライブラリが含まれます。
前のセクションでビルドしたイメージの SBOM を生成します。
gcloud artifacts sbom export
--uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart
セキュリティ分析情報を表示する
Google Cloud コンソールの Cloud Build UI には、Software Delivery Shield の [セキュリティ分析情報] パネルがあります。このパネルには、SLSA レベル、依存関係における脆弱性、ビルドの来歴など、ビルドに関連するセキュリティ情報が表示されます。
Software Delivery Shield の [セキュリティ分析情報] パネルを表示するには:
Google Cloud コンソールで、[ビルド履歴] ページを開きます。
実際のプロジェクトを選択し、[開く] をクリックします。
[リージョン] プルダウン メニューで、[us-central1] を選択します。
ビルドの表で、実行したビルドの行を見つけます。
[セキュリティ分析情報] 列で [表示] をクリックします。
ビルドの [セキュリティ分析情報] パネルが表示されます。
このパネルには、次の情報が表示されます。
SLSA レベル: このビルドは SLSA レベル 3 を取得しています。[詳細] リンクをクリックすると、このセキュリティ レベルの意味を確認できます。
脆弱性: アーティファクトに見つかった脆弱性。イメージ名([java-guestbook-backend])をクリックすると、脆弱性スキャンが完了したアーティファクトが表示されます。
Artifact Registry のビルドされたコンテナ イメージの依存関係。
ビルドの詳細: ビルダーやログを表示するためのリンクなど、ビルドの詳細。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Google Cloud プロジェクトとそのリソースをまとめて削除してください。
Container Scanning API を無効にします。
gcloud services disable containerscanning.googleapis.com --force
Artifact Registry リポジトリを削除します。
gcloud artifacts repositories delete containers \ --location=us-central1 --async
以上で、このクイックスタートで作成したリポジトリの削除が完了しました。
次のステップ
- Cloud Build の Software Delivery Shield のセキュリティ分析情報パネルの詳細を確認する
- Cloud Run へのデプロイ時にセキュリティの分析情報を表示する方法を確認する
- GKE へのデプロイ時にセキュリティの分析情報を表示する方法を確認する
- Security Delivery Shield の詳細を確認する。