Skip to content

Encryption at Rest

Exoscale encrypts Compute root volumes and Block Storage volumes at rest transparently at the hypervisor layer. You do not need to change your workflow, install agents in your guest operating system, or manage any keys yourself — volumes are encrypted by default and encryption cannot be disabled.

This page explains what is encrypted, how the encryption is performed, how keys are managed today, and what is changing next with the upcoming Exoscale KMS integration.

How it works

Exoscale uses AES-256 in XTS mode to encrypt volume data.

Instance local storage is encrypted with unique key material per volume. Encryption keys gets destroyed when the volume is deleted.

Block storage volumes receive unique encryption keys at volume creation. Encryption keys follow the lineage of the volume: snapshots inherit encryption keys of the underlying volume, and volumes promoted from snapshots inherit encryption keys of the underlying snapshot.

Encryption and decryption happen transparently: compute instances’ operating system sees a normal block device. Your operating system, filesystem, applications, and tooling do not need to be aware that the underlying volume is encrypted.

The encryption key for a volume is only ever present in clear-text in the memory of the hypervisor that is actively running the workload attached to that volume. When the instance is stopped or migrated away, its encryption key get removed from the hypervisor.

When creating instances from custom templates, encryption is performed transparently on the hypervisor at template fetch time. This encryption step leads to instance creation timings being higher than bare template download timings.

What is covered

Compute root volumes
Every new Compute instance is provisioned on top of an encrypted root volume by default.
Block Storage volumes
Every new Block Storage volume is encrypted by default.
Block Storage snapshots
Snapshots of Block Storage volumes inherit the encryption of their parent volume and remain encrypted throughout their lifetime. When a snapshot is promoted to a new Block Storage volume, the promoted volume is encrypted with the same key as the source snapshot and its parent volume.
Instance snapshots and templates on Object Storage
Instance snapshots and templates are stored on Exoscale Object Storage with bucket-level encryption, so the data remains encrypted on the underlying storage media.

Key management today

Exoscale manages encryption keys on your behalf. Each volume key is generated randomly on creation and securely stored encrypted.

Key material is never exposed to customers and its lifecycle is fully managed by Exoscale.

Rollout

Encryption at rest is being rolled out progressively:

  • New workloads are always encrypted. Every new Compute instance created boots from an encrypted root volume, and every new Block Storage volume created is encrypted at creation time.
  • **Existing instances will remain for the time being unencrypted. In the near future we will properly communicate how unencrypted instances can be encrypted.
  • Existing Block Storage volumes are not re-encrypted in place. In-place re-encryption of attached block devices carries real corruption risk, so existing unencrypted Block Storage volumes will remain as they are. If you need your existing Block Storage data to be encrypted at rest, the recommended path is to create a new Block Storage volume (which will be encrypted) and copy your data across.
Last updated on