Confidential VM 構成証明

構成証明は、Confidential VM インスタンスが正当であり、想定どおりの状態にあるという信頼性を高めるプロセスです。これは、ワークロードが高信頼実行環境(TEE)で実行されていることを検証するうえで不可欠なツールです。

CPU ベースの構成証明

証明書レポートは、VM が TEE で実行されていることを証明するものです。これらは Confidential VM インスタンスによって生成され、使用される Confidential Computing テクノロジーに応じて、ソフトウェア ベースの vTPM または専用のハードウェア ベースの Trusted Security Module(TSM)によって署名されます。構成証明レポートには、ブートローダー アクティビティ、ハードウェア構成、ファームウェア構成、その他のブート時のロギング イベントに関連する測定値が含まれています。これらの測定値は、Confidential VM インスタンスの状態と ID を検証するのに役立ちます。

リクエストできる構成証明レポートの種類は、Confidential VM インスタンスで使用されている Confidential Computing テクノロジーによって異なります。

署名元 タイプ レポート カバレッジ Confidential Computing テクノロジー
SEV SEV-SNP インテル TDX
Google マネージド vTPM ソフトウェア ベースの vTPM ブートローダー アクティビティ、カーネルの整合性
AMD Secure Processor ハードウェア ベースの TSM ハードウェアとファームウェアの環境
Intel TDX モジュール ハードウェア ベースの TSM ハードウェアとファームウェアの環境

構成証明レポートをリクエストする

次のツールを使用して、Google マネージド vTPM、AMD の Secure Processor、Intel の TDX モジュールから構成証明レポートをリクエストできます。

  • Go-TPM

  • Go-TPM ツール(AMD SEV-SNP と Intel TDX のサポートにはバージョン 0.4.4 以降が必要)

vTPM 構成証明イベントログの GceNonHostInfo イベントは、使用されている Confidential Computing テクノロジーを示します。Go-TPM ツールは、AMD SEV-SNP が使用されている場合は AMD Secure Processor から、Intel TDX が使用されている場合は Intel TDX モジュールから、構成証明レポートをリクエストできます。

ハードウェア認証レポートのみの場合、次のツールを使用して暗号チャレンジを TSM に送信できます。

  • AMD SEV-SNP の場合は、SEV Guest を使用します。バージョン チップ エンダーズメント キー(VCEK)証明書は、AMD のキー配信システム(KDS)から直接リクエストされるのではなく、VM にキャッシュ保存されます。

  • インテル TDX の場合は、TDX Guest を使用します。

Ubuntu でのインテル TDX

カーネル 1016 以降の Ubuntu イメージの場合、tdx_guest モジュールは linux-modules-extra パッケージにあります。

linux-modules-extra パッケージをインストールするには、次のコマンドを実行します。

sudo apt-get install linux-modules-extra-gcp

linux-modules-extra-gcp のインストール中に問題が発生した場合は、次のコマンドを実行してカーネルを更新できます。

sudo apt-get upgrade

変更を有効にするには、再起動するか、モジュールを手動で読み込む必要があります。モジュールを手動で読み込むには、次のコマンドを実行します。

sudo modprobe tdx_guest

Google Cloud Attestation で証明書レポートを検証する

信頼モデルで許可されている場合は、自分で構成証明検証ツールを作成して実行する代わりに、Google Cloud Attestation を使用できます。これには、Go-TPM ツールを使用して Confidential VM インスタンスの vTPM から構成証明引用を取得し、検証のために Google Cloud Attestation に送信することが含まれます。引用符が検証に合格すると、Google Cloud Attestation は VM 情報を含むトークンを返します。このトークンを独自のポリシーと比較して、VM を信頼するかどうかを確認できます。

Google Cloud Attestation は、AMD SEV Confidential VM インスタンスでのみ使用できます。

Google Cloud Attestation の使用に関するエンドツーエンドの例については、機密仮想マシンでの vTPM リモート構成証明の Codelab をご覧ください。

GPU ベースの構成証明

GPU 構成証明では、GPU ドライバ、GPU デバイス、またはその両方が検証されます。

GPU ドライバの構成証明

堅牢な構成証明を確保するには、Confidential VM インスタンスの作成時にセキュアブートを有効にします。

セキュアブートでは、ディストリビューション署名付きの GPU ドライバのみを読み込むことができます。この確認は、GPU ドライバが NVIDIA によって正式にリリースされ、提供されていることを確認するために不可欠です。公式ドライバは、GPU デバイスとの安全な Security Protocol and Data Model(SPDM)セッションを確立し、NVIDIA GPU デバイスの構成証明のトラストのルートとして機能するため、重要です。

NVIDIA GPU デバイスの構成証明

GPU ドライバの構成証明に加えて、NVIDIA GPU デバイスの構成証明を行うこともできます。NVIDIA GPU デバイスの構成証明は、GPU で実行されている Video BIOS(VBIOS)を検証します。これにより、NVIDIA ソフトウェアのバージョンを特定し、潜在的な脆弱性の有無を評価できます。

NVIDIA GPU デバイスの構成証明を行うには、まず NVIDIA の nvtrust ライブラリをインストールし、ローカルまたはリモートの構成証明に使用します。

API_LINK="https://api.github.com/repos/NVIDIA/nvtrust/tags"
LATEST_VER="$(curl -s "${API_LINK}" | jq -r '..name')"
DOWNLOAD_LINK="https://github.com/NVIDIA/nvtrust/archive/refs/tags/${LATEST_VER}.tar.gz"
echo "Downloading nvtrust version ${LATEST_VER}"
curl -L "${DOWNLOAD_LINK}" -o nvtrust.tar.gz
mkdir github_nvtrust
tar xvf nvtrust.tar.gz -C github_nvtrust
cd github_nvtrust/nvtrust-${LATEST_VER:1}
python3 -m venv./prodtest
source./prodtest/bin/activate

ローカル GPU デバイスの構成証明

ローカル GPU デバイス構成証明を使用すると、構成証明プロセスを VM インスタンスで直接実行し、結果をローカルで表示して GPU の完全性を確認できます。

ローカル GPU デバイスの構成証明を実行するには、ローカル検証ツールをインストールします。詳細な手順については、検証ツールをご覧ください。

リモート GPU デバイスの認証

リモート GPU デバイスの構成証明では、NVIDIA Remote Attestation Service(NRAS)を使用して GPU の完全性を検証します。このプロセスにより、NVIDIA によって署名された構成証明トークンが生成されます。このトークンは、GPU の信頼性と完全性を示すためにサードパーティに提示できます。これは、機密性の高いデータやリソースにアクセスするために必要となることがよくあります。

詳細な手順については、NVIDIA 構成証明 SDKNVIDIA リモート構成証明サービス(NRAS)をご覧ください。