Enable TDX
Trust Domain Extensions (TDX) is a hardware-based security feature that provides strong memory encryption and integrity protection for virtual machines (VMs). This isolates VMs from the hypervisor and other host system software. TDX is available only with Intel CPUs.
Enabling TDX on a RHEL host is a Technology Preview only. However, enabling TDX on a RHEL guest is fully supported.
Enable TDX on a RHEL host Copy linkLink copied!
To enable Trust Domain Extensions (TDX) on a RHEL host, you must ensure that your system meets the prerequisites, then install the libvirt-daemon-kvm and tdx-qgs packages.
Before you begin Copy linkLink copied!
- Intel CPU that supports TDX, such as 5th Generation Intel Xeon Scalable Processors or newer
- Your host uses the following hardware and software:
- RHEL 10.1 or later
- TDX firmware version 1.5 or later
- The following settings are enabled in the UEFI CPU menu:
Software Guard Extensions (SGX)SGX Auto MP Registration AgentTotal Memory Encryption (TME)Total Memory Encryption Multi-Tenant (TME-MT)Trust Domain Extension (TDX)TDX Secure Arbitration Mode Loader (SEAM Loader)
About this task Copy linkLink copied!
TDX is a hardware-based security feature that provides strong memory encryption and integrity protection for virtual machines (VMs). This isolates VMs from the hypervisor and other host system software. TDX is available only with Intel CPUs.
Using TDX on a RHEL host is a Technology Preview only. Technology Preview features are not supported with Red Hat production service levels agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- Verify that TDX is enabled on the host.
# virt-host-validate qemuQEMU: Checking for hardware virtualization: PASS QEMU: Checking if device '/dev/kvm' exists: PASS QEMU: Checking if device '/dev/kvm' is accessible: PASS QEMU: Checking if device '/dev/vhost-net' exists: PASS QEMU: Checking if device '/dev/net/tun' exists: PASS QEMU: Checking for cgroup 'cpu' controller support: PASS QEMU: Checking for cgroup 'cpuacct' controller support: PASS QEMU: Checking for cgroup 'cpuset' controller support: PASS QEMU: Checking for cgroup 'memory' controller support: PASS QEMU: Checking for cgroup 'devices' controller support: PASS QEMU: Checking for cgroup 'blkio' controller support: PASS QEMU: Checking for device assignment IOMMU support: PASS QEMU: Checking if IOMMU is enabled by kernel: PASS QEMU: Checking for secure guest support: PASSIf TDX is enabled on the host, the
Checking for secure guest supportline reportsPASS.
What to do next Copy linkLink copied!
Enable TDX on a RHEL guest Copy linkLink copied!
To enable Domain Extensions (TDX) functionality in a RHEL virtual machine (VM), you can apply TDX configuration when creating the VM. Alternatively, you can enable TDX in an existing RHEL VM by editing the VM configuration.
Before you begin Copy linkLink copied!
- TDX is enabled on your RHEL host. For instructions, see Enabling TDX on a RHEL host
- The host has
libvirt,virt-install, andvirt-xmlinstalled. - The VM uses a supported RHEL version as the guest operating system:
- RHEL 9.6 or later
- RHEL 10.0 or later
TDX is incompatible with kdump. Enabling TDX in a VM causes kdump to fail in that VM.
About this task Copy linkLink copied!
TDX is a hardware-based security feature that provides strong memory encryption and integrity protection for VMs, that isolates VMs from the hypervisor and other host system software. TDX is available only with Intel CPUs.
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- On the host, verify that the VM is running with TDX enabled.
# virsh dumpxml --xpath //launchSecurity <vm_name><launchSecurity type="tdx"> <quoteGenerationService/> </launchSecurity> - Log in to the VM.
- Verify that the TDX guest device exists.
# ls -l /dev/tdx_guestIf TDX is properly enabled in the guest, this command lists the
/dev/tdx_guestcharacter device.Important Checking the existence of
/dev/tdx_guestproves only that the VM is configured and operating correctly. To prove that the VM is using TDX to secure it against a hostile host, you must perform a cryptographic attestation of the guest.For more information about attestation, see Learn about Confidential Computing Attestation (Red Hat Blog).
- If TDX is not detected in the guest, verify that the host TDX configuration is correct and that the VM was restarted after the configuration change.
- To revert to the original configuration, restore from the backup:
# virsh undefine <vm_name> # virsh define /tmp/<vm_name>-backup.xml