Feature status of clouds
What works on which cloud? Currently, Confidential VMs (CVMs) are available in varying quality on the different clouds and software stacks.
For Constellation, the ideal environment provides the following:
- Ability to run arbitrary software and images inside CVMs
- CVMs based on AMD SEV-SNP (available in EPYC CPUs since the Milan generation) or Intel TDX (available in Xeon CPUs since the Sapphire Rapids generation)
- Ability for CVM guests to obtain raw hardware attestation statements
- Reviewable, open-source firmware inside CVMs
- Capability of the firmware to attest the integrity of the code it passes control to, e.g., with an embedded virtual TPM (vTPM)
(1) is a functional must-have. (2)--(5) are required for remote attestation that fully keeps the infrastructure/cloud out. Constellation can work without them or with approximations, but won't protect against certain privileged attackers anymore.
The following table summarizes the state of features for different infrastructures as of June 2023.
Feature | Azure | GCP | AWS | STACKIT | OpenStack (Yoga) |
---|---|---|---|---|---|
1. Custom images | Yes | Yes | Yes | Yes | Yes |
2. SEV-SNP or TDX | Yes | Yes | Yes | No | Depends on kernel/HV |
3. Raw guest attestation | Yes | Yes | Yes | No | Depends on kernel/HV |
4. Reviewable firmware | No* | No | Yes | No | Depends on kernel/HV |
5. Confidential measured boot | Yes | No | No | No | Depends on kernel/HV |
Microsoft Azure
With its CVM offering, Azure provides the best foundations for Constellation. Regarding (3), Azure provides direct access to remote-attestation statements. The firmware runs in an isolated domain inside the CVM and exposes a vTPM (5), but it's closed source (4). On SEV-SNP, Azure uses VM Privilege Level (VMPL) isolation for the separation of firmware and the rest of the VM; on TDX, they use TD partitioning. This firmware is signed by Azure. The signature is reflected in the remote-attestation statements of CVMs. Thus, the Azure closed-source firmware becomes part of Constellation's trusted computing base (TCB).
* Recently, Azure announced the open source paravisor OpenHCL. It's the foundation for fully open source and verifiable CVM firmware. Once Azure provides their CVM firmware with reproducible builds based on OpenHCL, (4) switches from No to Yes. Constellation will support OpenHCL based firmware on Azure in the future.