18.11.2. RHEL ゲストで TDX を有効にする
RHEL 仮想マシンで Domain Extensions (TDX) を有効にするには、仮想マシンの作成時に TDX 設定を適用します。既存の RHEL 仮想マシンで TDX を有効にする場合は、仮想マシンの設定を編集します。
TDX はハードウェアベースのセキュリティー機能です。仮想マシンに強力なメモリー暗号化および整合性保護機能を提供し、仮想マシンをハイパーバイザーやその他のシステムソフトウェアから分離します。TDX は Intel CPU でのみ利用可能です。
前提条件
- RHEL ホストで TDX が有効になっている。手順については、RHEL ホストで TDX を有効にする を参照してください。
-
ホストに
libvirt、virt-install、virt-xmlがインストールされている。 仮想マシンは、サポート対象の RHEL バージョンをゲストオペレーティングシステムとして使用している。
- RHEL 9.6 以降
- RHEL 10.0 以降
TDX は kdump と互換性がありません。仮想マシン内で TDX を有効にすると、その仮想マシン内で kdump が失敗します。
手順
TDX を有効にした新しい RHEL 仮想マシンを作成するには、以下を実行します。
virt-installユーティリティーを、--launchSecurity tdx,quoteGenerationService=onオプションを指定して使用します。以下に例を示します。# virt-install \ --name <vm_name> --os-info rhel9.6 --memory 2048 --vcpus 2 \ --boot uefi --import --disk /var/lib/libvirt/images/disk.qcow2 \ --graphics none --console pty,target_type=serial \ --launchSecurity tdx,quoteGenerationService=on
既存の RHEL 仮想マシンで TDX 機能を有効にするには、以下を実行します。
既存の仮想マシンが実行中の場合はシャットダウンします。
# virsh shutdown <vm_name>現在の仮想マシン設定をエクスポートしてバックアップします。
# virsh dumpxml <vm_name> > /tmp/<vm_name>-backup.xml仮想マシンドメインに TDX 起動セキュリティー設定を追加します。
# virt-xml <vm_name> --edit --launchSecurity type=tdxこのコマンドは、TDX 設定を仮想マシンのドメイン XML に追加します。または、
virsh edit <vm_name>を使用して設定を手動で編集し、<launchSecurity type='tdx'>要素を追加することもできます。仮想マシンが互換性のある CPU モデルで設定されていることを確認します。
# virsh dumpxml <vm_name> --xpath //cpu <cpu mode="host-passthrough" check="none" migratable="on"/>CPU は
ホストパススルーに設定するか、Intel Xeon モデルを使用する必要があります。そうでない場合は、更新してください。# virt-xml <vm_name> --edit --cpu mode=host-passthrough仮想マシンを起動します。
# virsh start <vm_name>
検証
ホスト側で、仮想マシンが TDX を有効にした状態で実行されていることを確認します。
# virsh dumpxml --xpath //launchSecurity <vm_name> <launchSecurity type="tdx"> <quoteGenerationService/> </launchSecurity>- 仮想マシンにログインします。
TDX ゲストデバイスが存在することを確認します。
# ls -l /dev/tdx_guestゲスト上で TDX が正しく有効になっている場合、このコマンドは
/dev/tdx_guestキャラクターデバイスをリストします。重要/dev/tdx_guestの存在を確認することで証明できるのは、仮想マシンが正しく設定され、正常に動作していることのみです。仮想マシンが TDX を使用して悪意のあるホストから保護されていることを証明するには、ゲストの暗号化アテステーションを実行する必要があります。アテステーションの詳細は、Learn about Confidential Computing Attestation (Red Hat Blog) を参照してください。
トラブルシューティング
- ゲスト上で TDX が検出されない場合は、ホストの TDX 設定が正しいことと、設定変更後に仮想マシンが再起動されたことを確認します。
元の設定に戻す場合はバックアップから復元します。
# virsh undefine <vm_name> # virsh define /tmp/<vm_name>-backup.xml