このページでは、Google Cloud コンソールの [セキュリティ分析情報] サイドパネルを使用して、Cloud Build ビルドのセキュリティ情報を表示する方法について説明します。
[セキュリティ分析情報] サイドパネルには、複数のセキュリティ指標の概要が表示されます。サイドパネルを使用して、ビルドプロセスのリスクを特定して軽減できます。
このパネルには、次の情報が表示されます。
- ソフトウェア アーティファクトのためのサプライチェーン レベル(SLSA): SLSA 仕様に従って、ソフトウェア ビルドプロセスの成熟度を示します。たとえば、このビルドは SLSA レベル 3 を取得しています。
- 脆弱性: アーティファクトで見つかった脆弱性の概要と、Artifact Analysis によってスキャンされたイメージの名前。イメージ名をクリックすると、脆弱性の詳細が表示されます。たとえば、このスクリーンショットでは java-guestbook-backend をクリックします。
- ビルドされたアーティファクトのVulnerability Exploitability eXchange(VEX)ステータス。
- ビルド アーティファクトのソフトウェア部品構成表(SBOM)。
- ビルドの詳細: ビルダーやログのリンクなど、ビルドの詳細。
Cloud Build を他の Google Cloud プロダクトや機能と組み合わせて使用し、ソフトウェア サプライ チェーンのセキュリティ体制を強化する方法については、ソフトウェア サプライ チェーンのセキュリティをご覧ください。
脆弱性スキャンを有効にする
[セキュリティ分析情報] パネルには、Cloud Build と Artifact Analysis のデータが表示されます。Artifact Analysis は、Artifact Registry にビルド アーティファクトをアップロードするときに、OS、Java(Maven)、Go パッケージの脆弱性をスキャンするサービスです。
セキュリティ分析情報の結果の全体を受け取るには、脆弱性スキャンを有効にする必要があります。
Container Scanning API を有効にして、脆弱性スキャンをオンにします。
ビルドを実行し、ビルド アーティファクトを Artifact Registry に保存します。Artifact Analysis は、ビルド アーティファクトを自動的にスキャンします。
脆弱性スキャンには、ビルドのサイズによっては数分かかることがあります。
脆弱性スキャンの詳細については、自動スキャンをご覧ください。
スキャンには費用がかかります。詳しい料金情報については、料金ページをご覧ください。
分析情報を表示する権限を付与する
Google Cloud コンソールでセキュリティ分析情報を表示するには、次の IAM ロール、または同等の権限を持つロールを付与されていることが必要です。Artifact Registry と Artifact Analysis が別々のプロジェクトで実行されている場合は、Artifact Analysis が実行されているプロジェクトに Container Analysis Occurrences 閲覧者のロールまたは同等の権限を追加する必要があります。
- Cloud Build 閲覧者(
roles/cloudbuild.builds.viewer
): ビルドの分析情報を閲覧できます。 - Container Analysis Occurrences 閲覧者(
roles/containeranalysis.occurrences.viewer
): 脆弱性と依存関係の情報を閲覧できます。
[セキュリティ分析情報] サイドパネルを表示する
[セキュリティ分析情報] パネルを表示するには:
Google Cloud コンソールで [ビルド履歴] ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
[リージョン] プルダウン メニューで、ビルドを実行したリージョンを選択します。
ビルドの表で、セキュリティ分析情報を表示するビルドを含む行を見つけます。
[セキュリティ分析情報] 列で [表示] をクリックします。
[セキュリティ分析情報] サイドパネルが開きます。
[省略可] ビルドで複数のアーティファクトが生成された場合は、[アーティファクト] プルダウン ボックスから、セキュリティ分析情報を表示するアーティファクトを選択します。
選択したアーティファクトの [セキュリティ分析情報] パネルが表示されます。
SLSA レベル
SLSA レベルは、一連のガイドラインに基づいて、ビルドの現在のセキュリティ保証レベルを評価します。
脆弱性
[脆弱性] カードには、ビルド アーティファクトの脆弱性の発生回数、利用可能な修正、VEX のステータスが表示されます。
Artifact Analysis は、Artifact Registry に push されたコンテナ イメージのスキャンをサポートします。このスキャンにより、オペレーティング システム パッケージと、Java(Maven)または Go で作成されたアプリケーション パッケージの脆弱性が検出されます。
スキャン結果は重大度を基準として整理されます。重大度は、脆弱性が悪用される可能性、その範囲、影響、成熟度に基づく定性的な評価です。
イメージ名をクリックすると、脆弱性スキャンが完了したアーティファクトが表示されます。
Artifact Analysis は、関連する VEX ステートメントを Artifact Registry に push されたコンテナ イメージごとに保存できます。VEX は、プロダクトが既知の脆弱性の影響を受けているかどうかを示すセキュリティ アドバイザリの一種です。
各 VEX ステートメントの内容は次のとおりです。
- VEX ステートメントのパブリッシャー
- ステートメントが書き込まれるアーティファクト
- 既知の脆弱性の脆弱性評価(VEX ステータス)
依存関係
[依存関係] カードには、依存関係のリストを含む SBOM のリストが表示されます。
Cloud Build でコンテナ イメージを作成して Artifact Registry に push すると、Artifact Analysis は push されたイメージの SBOM レコードを生成できます。
SBOM は、アプリケーションの完全なインベントリであり、ソフトウェアが依存するパッケージを特定します。その内容には、ベンダーのサードパーティ ソフトウェア、内部アーティファクト、オープンソース ライブラリが含まれます。
ビルド
ビルドカードには次の情報が含まれます。
- ログ - ビルドログ情報へのリンク
- ビルダー - ビルダー名
- 完了 - ビルドが完了してからの経過時間
- 来歴 - ビルドに関する検証可能なメタデータ
来歴のメタデータには、ビルドされたイメージのダイジェスト、入力ソースの場所、ビルド ツールチェーン、ビルドステップ、ビルド時間などの詳細情報が含まれます。いつでもビルドの来歴を検証することもできます。
今後のビルドに来歴情報が含まれるようにするには、イメージに来歴メタデータが含まれることを要求するように Cloud Build を構成します。
次のステップ
- ソフトウェア サプライ チェーンのセキュリティについて学習する。
- ソフトウェア サプライ チェーンのセキュリティに関するベスト プラクティスを確認する。
- ビルドログの保存と表示に関する方法を確認する。
- ビルドエラーをトラブルシューティングする方法について学習する。