このページでは、デプロイするコンテナ イメージのセキュリティ情報を表示する方法について説明します。この情報は、Google Cloud コンソールの Cloud Deploy の [セキュリティ分析情報] サイドパネルで確認できます。
[セキュリティ分析情報] サイドパネルには、複数のセキュリティ指標の概要が表示されます。このパネルを使用すると、デプロイするイメージのリスクを特定して軽減できます。
このパネルには、次の情報が表示されます。
SLSA ビルドレベル
ソフトウェア アーティファクトのサプライチェーン レベル(SLSA)仕様に従って、ソフトウェア ビルドプロセスの成熟度を示します。
脆弱性
アーティファクトで検出された脆弱性を一覧表示します。
VEX のステータス
ビルド アーティファクトのVulnerability Exploitability eXchange(VEX)ステータス。
SBOM
ビルド アーティファクトのソフトウェア部品構成表(SBOM)。
ビルドの詳細
ビルドに関する情報が含まれます。
要件
セキュリティ分析情報は、次の要件を満たすコンテナ イメージでのみ使用できます。
脆弱性スキャンが有効になっている必要があります。
Artifact Analysis が実行されているプロジェクトで、必要な Identity and Access Management のロールを付与する必要があります。
リリースの作成の一環として、イメージの名前は SHA 修飾されている必要があります。
Cloud Deploy の [アーティファクト] タブに SHA256 ハッシュのないイメージが表示されている場合は、そのイメージを再ビルドする必要があります。
脆弱性スキャンを有効にする
[セキュリティ分析情報] パネルに表示される情報は、Artifact Analysis から、また、場合によっては Cloud Build から提供されます。Artifact Analysis は、ベースコンテナ イメージ、コンテナ内の Maven と Go パッケージ、およびコンテナ化されていない Maven パッケージに対する統合オンデマンドまたは自動スキャンを提供するサービスです。
利用可能なすべてのセキュリティ分析情報を受け取るには、脆弱性スキャンを有効にする必要があります。
脆弱性スキャンを有効にするには、必要な API を有効にします。
コンテナ イメージをビルドして、Artifact Registry に保存します。Artifact Analysis は、ビルド アーティファクトを自動的にスキャンします。
コンテナ イメージのサイズによっては、脆弱性スキャンに数分かかることがあります。
脆弱性スキャンの詳細については、push 時のスキャンをご覧ください。
スキャンには費用がかかります。詳しい料金情報については、料金ページをご覧ください。
分析情報を表示する権限を付与する
Cloud Deploy でセキュリティ分析情報を表示するには、ここで説明する IAM ロール、または同等の権限を持つロールが必要です。Artifact Registry と Artifact Analysis が別々のプロジェクトで実行されている場合は、Artifact Analysis が実行されているプロジェクトに Artifact Analysis Occurrences 閲覧者のロールまたは同等の権限を追加する必要があります。
Cloud Build 閲覧者(
roles/cloudbuild.builds.viewer
)ビルドの分析情報を表示する。
Artifact Analysis 閲覧者 (
roles/containeranalysis.occurrences.viewer
)脆弱性やその他の依存関係情報を表示する。
Cloud Deploy でセキュリティ分析情報を表示する
Google Cloud コンソールで Cloud Deploy の [デリバリー パイプライン] ページを開きます。
必要に応じて、セキュリティ分析情報を表示するコンテナ イメージを配信したパイプラインとリリースを含むプロジェクトを選択します。
デリバリー パイプラインの名前をクリックします。
デリバリー パイプラインの詳細が表示されます。
[デリバリー パイプラインの詳細] ページで、コンテナ イメージを配信したリリースを選択します。
[リリースの詳細] ページで、[アーティファクト] タブを選択します。
選択したリリースによって配信されたコンテナは、[ビルド アーティファクト] に表示されます。コンテナごとに、[セキュリティ分析] 列に [表示] リンクがあります。
セキュリティの詳細を表示するアーティファクトの名前の横にある [表示] リンクをクリックします。
[セキュリティ分析情報] パネルが表示され、このアーティファクトで利用可能なセキュリティ情報が表示されます。以降のセクションでは、この情報について詳しく説明します。
SLSA レベル
SLSA は、ソフトウェアのプロデューサーとコンシューマー向けの業界標準のセキュリティ ガイドラインです。この基準では、ソフトウェアのセキュリティに対する信頼性の 4 つのレベルが確立されています。
脆弱性
[脆弱性] カードには、ビルド アーティファクトの脆弱性オカレンス、利用可能な修正、VEX のステータスが表示されます。
Artifact Analysis は、Artifact Registry に push されたコンテナ イメージのスキャンをサポートします。このスキャンにより、オペレーティング システム パッケージと、Python、Node.js、Java(Maven)、Go で作成されたアプリケーション パッケージの脆弱性が検出されます。
スキャン結果は重大度を基準として整理されます。重大度は、脆弱性が悪用される可能性、その範囲、影響、成熟度に基づく定性的な評価です。
イメージ名をクリックすると、脆弱性スキャンが完了したアーティファクトが表示されます。
Artifact Analysis は、関連する VEX ステートメントを Artifact Registry に push されたコンテナ イメージごとに保存できます。VEX は、プロダクトが既知の脆弱性の影響を受けているかどうかを示すセキュリティ アドバイザリの一種です。
各 VEX ステートメントの内容は次のとおりです。
- VEX ステートメントのパブリッシャー
- ステートメントが書き込まれるアーティファクト
- CVE の脆弱性評価(VEX ステータス)
依存関係
[依存関係] カードには、依存関係のリストを含む SBOM のリストが表示されます。
Cloud Build でコンテナ イメージを作成して Artifact Registry に push すると、Artifact Analysis は push されたイメージの SBOM レコードを生成できます。
SBOM は、アプリケーションの完全なインベントリであり、ソフトウェアが依存するパッケージを特定します。その内容には、ベンダーのサードパーティ ソフトウェア、内部アーティファクト、オープンソース ライブラリが含まれます。
ビルドの詳細
ビルドの詳細には次のものが含まれます。
Cloud Build ログへのリンク
イメージをビルドしたビルダーの名前
ビルドの日時
ビルドの来歴(JSON 形式)
次のステップ
クイックスタート: 「GKE にアプリをデプロイしてセキュリティ分析情報を表示する」を試す。
クイックスタート: Cloud Run にアプリをデプロイしてセキュリティ分析情報を表示するを試す
ビルドログの保存と表示に関する方法を確認する。