構成証明は、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 ツール(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 構成証明 SDK と NVIDIA リモート構成証明サービス(NRAS)をご覧ください。