Create a Confidential VM
Once your image is uploaded, creating a Confidential VM is a standard server-create call with two Confidential VM-specific rules. This topic describes how to create a Confidential VM using the IONOS CLOUD API, understand immutable properties after creation, and learn how restart behavior differs from standard VMs.
Important:
The Confidential VM must be an
ENTERPRISEserver.You must not specify
cpuFamilyorcores.
Both the mentioned parameters are derived from the image's launch-config.json. After creation, the platform begins a hardware-enforced startup and encrypts VM memory from the start. Key properties, such as cores, ram, cpuFamily, and availabilityZone, are immutable after creation. Restart behaviour also differs from standard VMs: an in-guest restart terminates the VM rather than restarts it. You can use the API to restart it.
How to create a Confidential VM
Create a Confidential VM using the Cloud API
Create an ENTERPRISE-type server with a volume that uses your uploaded Confidential VM image. An image is confidential if SEV-SNP appears in its requiredFeatures, which is set automatically at upload; that is what routes the server to Confidential VM-capable hardware.
POST /cloudapi/v6/datacenters/{datacenterId}/servers
{
"properties": {
"name": "my-cc-vm",
"type": "ENTERPRISE",
"ram": 8192
},
"entities": {
"volumes": {
"items": [
{ "properties": { "image": "YOUR_UPLOADED_IMAGE_ID", "size": 20 } }
]
}
}
}Important:
Do not set
cpuFamily: The CPU family (example:EPYC-Turin) is selected automatically from thevcpu-modelfield of thelaunch-config.jsonconfiguration located in theLAUNCH_ARTIFACTSpartition.Do not set
cores: The number of vCPU cores is selected automatically from thevcpu-countfield of the same file.
After creation, cores, ram, cpuFamily, and availabilityZone are immutable, preventing configuration changes after the initial start. You can change the startup volume.
However, you can update these artifacts if your attestation stack supports re-attestation or if you use SNPGuard. For more information, see IONOS CLOUD API documentation.
Understand Confidential VM startup behavior
The platform reads the LAUNCH_ARTIFACTS and begins the hardware-enforced startup. Your VM's memory is encrypted by the CPU from the start, with or without attestation. If you configured an attestation service, the initrd contacts it during startup to obtain the disk-unlock key. If you did not, your initrd is responsible for unlocking the root filesystem on its own. For more information about what attestation does and does not cover, see Attest a Confidential VM.
Important: Restarting using the API performs a full cold stop and start; memory is cleared and the full startup sequence, including attestation if configured, runs again. Restarting or shutting down from within the VM terminates it and does not restart it automatically. To restart, use the IONOS CLOUD API.
Result: Your Confidential VM is now created with hardware-enforced memory encryption and a secure startup configured from the LAUNCH_ARTIFACTS.
Last updated
Was this helpful?