Check ID:
Provider: Azure
Service:
Severity: MEDIUM
Categories:
Resource type:
vm_ensure_attached_disks_encrypted_with_cmkProvider: Azure
Service:
vmSeverity: MEDIUM
Categories:
encryptionResource type:
microsoft.compute/disksWhat this check verifies
Attached Azure managed disks (OS and data) are assessed to confirm encryption uses customer-managed keys (CMK) via disk encryption sets rather than platform-managed keys. Scope includes disks currently attached to VMs, evaluating their encryption type to verify CMK is applied.
Risk
Without CMK, you lose control over key lifecycle and access. This weakens confidentiality and compliance: you can’t enforce independent rotation, promptly revoke keys to crypto-lock stolen copies/snapshots, or separate duties. Misuse or compromise may keep data readable beyond your trust boundary.Recommendation
Use CMK with disk encryption sets for all attached OS and data disks.- Enforce least privilege on key usage and scope
- Enable periodic key rotation and auditing
- Store keys in HSM-backed vaults; separate key and data admins
- Combine with encryption at host to cover temp disks and caches
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az disk update -g <RESOURCE_GROUP> -n <DISK_NAME> —encryption-type EncryptionAtRestWithCustomerKey —disk-encryption-set <DES_ID>
References
- https://learn.microsoft.com/en-us/azure/virtual-machines/disk-encryption-overview
- https://support.icompaas.com/support/solutions/articles/62000229895-ensure-that-os-and-data-disks-are-encrypted-with-customer-managed-key-cmk-
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/azure/VirtualMachines/sse-boot-disk-cmk.html#
- https://learn.microsoft.com/en-us/azure/security/fundamentals/data-encryption-best-practices#protect-data-at-rest
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = vm_ensure_attached_disks_encrypted_with_cmk. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks