Azure Citadel
  • Blogs

  • Azure Arc
    • Overview
    • Azure Arc-enabled Kubernetes
      • Prereqs
      • Background
      • Deploy Cluster
      • Connect to Arc
      • Enable GitOps
      • Deploy Application
      • Enable Azure AD
      • Enforce Policy
      • Enable Monitoring
      • Enable Azure Defender
      • Enable Data Services
      • Enable Application Delivery
    • Azure Arc-enabled Servers
      • Prereqs
      • Scenario
      • Hack Overview
      • Azure Landing Zone
      • Arc Pilot resource group
      • Azure Monitoring Agent
      • Additional policy assignments
      • Access your on prem VMs
      • Create onboarding scripts
      • Onboarding using scripts
      • Inventory
      • Monitoring
      • SSH
      • Windows Admin Center
      • Governance
      • Custom Script Extension
      • Key Vault Extension
      • Managed Identity
    • Useful Links
  • Azure CLI
    • Install
    • Get started
    • JMESPATH queries
    • Integrate with Bash
  • Azure landing zone
    • Overview
    • Run the ALZ Accelerator
      • Prereqs
      • Elevate
      • Bootstrap
      • Demote
      • Browse the deployed resources
    • Deploy an Azure landing zone
      • What is the Azure landing zone?
      • Create an initial ALZ config
      • Add a local override library
      • Test locally
      • Run through the CI/CD workflow
    • Understanding libraries
      • What is a library?
      • Policies, Assignments and Roles
      • Archetypes, Overrides and Architecture
      • Metadata and Policy Default Values
      • Custom libraries
    • Reference configs
      • Azure landing zone library
      • Azure landing zone library with overrides
  • Azure Lighthouse
    • Minimal Lighthouse definition
    • Using service principals
    • Privileged Identity Management
  • Azure Policy
    • Azure Policy Basics
      • Policy Basics in the Azure Portal
      • Creating Policy via the CLI
      • Deploy If Not Exists
      • Management Groups and Initiatives
    • Creating Custom Policies
      • Customer scenario
      • Policy Aliases
      • Determine the logic
      • Create the custom policy
      • Define, assign and test
  • Customer Managed Keys
    • Sovereignty scenarios
    • Key management options
    • 🧪 Azure Key Vault Premium
    • L2: Encryption at rest with CMK
    • 🧪 CMK for Storage
    • 🧪 CMK for VM Disks and AKS
  • Marketplace
    • Introduction
      • Terminology
      • Offer Types
    • Partner Center
    • Offer Type
    • Publish a VM Offer HOL
      • Getting Started
      • Create VM Image
      • Test VM Image
      • VM Offer with SIG
      • VM Offer with SAS
      • Publish Offer
      • Other VM Resources
    • Publish a Solution Template HOL
      • Getting Started
      • Create ARM Template
      • Validate ARM Template
      • Create UI Definition
      • Package Assets
      • Publish Offer
    • Publish a Managed App HOL
      • Getting Started
      • Create ARM Template
      • Validate ARM Template
      • Create UI Definition
      • Package Assets
      • Publish Offer
    • Managed Apps with AKS HOL
    • Other Managed App Resources
    • SaaS Offer HOLs
    • SaaS Offer Video Series
      • Video 1 - SaaS Offer Overview
      • Video 2 - Purchasing a SaaS Offer
      • Video 3 - Purchasing a Private SaaS Plan
      • Video 4 - Publishing a SaaS Offer
      • Video 5 - Publishing a Private SaaS Plan
      • Video 6 - SaaS Offer Technical Overview
      • Video 7 - Azure AD Application Registrations
      • Video 8 - Using the SaaS Offer REST Fulfillment API
      • Video 9 - The SaaS Client Library for .NET
      • Video 10 - Building a Simple SaaS Landing Page in .NET
      • Video 11 - Building a Simple SaaS Publisher Portal in .NET
      • Video 12 - SaaS Webhook Overview
      • Video 13 - Implementing a Simple SaaS Webhook in .NET
      • Video 14 - Securing a Simple SaaS Webhook in .NET
      • Video 15 - SaaS Metered Billing Overview
      • Video 16 - The SaaS Metered Billing API with REST
  • Microsoft Fabric
    • Theory
    • Prereqs
    • Fabric Capacity
    • Set up a Remote State
    • Create a repo from a GitHub template
    • Configure an app reg for development
    • Initial Terraform workflow
    • Expanding your config
    • Configure a workload identity
    • GitHub Actions for Microsoft Fabric
    • GitLab pipeline for Microsoft Fabric
  • Packer & Ansible
    • Packer
    • Ansible
    • Dynamic Inventories
    • Playbooks & Roles
    • Custom Roles
    • Shared Image Gallery
  • Partner Admin Link
    • Understanding PAL
    • User and guest IDs
    • Service principals with credentials
    • CI/CD pipelines & OpenID Connect
    • Using AzAPI in Terraform
    • PAL tagging with a service principal
    • Azure Lighthouse & PAL
    • PAL FAQ
  • REST API
    • REST API theory
    • Using az rest
  • Setup
  • Sovereign landing zone
    • Overview
    • Run the ALZ Accelerator
      • Prereqs
      • Elevate
      • Bootstrap
      • Demote
      • Components
    • Deploy Sovereign landing zone
      • Create an initial SLZ config
      • Add a local override library
      • Test locally
      • Run through the CI/CD workflow
    • Understanding libraries
      • What is a library?
      • Policies, Assignments and Roles
      • Archetypes, Overrides and Architecture
      • Metadata and Policy Default Values
      • Custom libraries
    • Reference configs
      • Sovereign landing zone
      • Sovereign landing zone library with overrides
      • SLZ extended with a country pack
  • Terraform
    • Fundamentals
      • Initialise
      • Format
      • Validate
      • Plan
      • Apply
      • Adding resources
      • Locals and outputs
      • Managing state
      • Importing resources
      • Destroy
    • Get set up for Terraform
      • Cloud Shell
      • macOS
      • Windows with PowerShell
      • Windows with Ubuntu in WSL2
    • Using AzAPI
      • Using the REST API
      • azapi_resource
      • Removing azapi_resource
      • azapi_update_resource
      • Data sources and outputs
      • Removing azapi_update_resource
  • Virtual Machines
    • Azure Bastion with native tools & AAD
    • Managed Identities

  • About
  • Archive
  1. Home
  2. Customer Managed Keys
  3. Key management options
Key management options
Key management options
Customer Managed Keys
Sovereignty scenarios
Key management options
🧪 Azure Key Vault Premium
L2: Encryption at rest with CMK
🧪 CMK for Storage
🧪 CMK for VM Disks and AKS
  • Introduction
  • Azure Key Vault Standard
  • Azure Key Vault Premium
  • Azure Key Vault Managed HSM
  • Comparison
  • Soft delete and purge protection
  • Why we use Key Vault Premium for these labs

Key management options

Azure Key Vault Standard, Azure Key Vault Premium, and Azure Key Vault Managed HSM each offer a different balance of security, sovereignty, and cost. Here is how to choose.

Table of Contents

  • Introduction
  • Azure Key Vault Standard
  • Azure Key Vault Premium
  • Azure Key Vault Managed HSM
  • Comparison
  • Soft delete and purge protection
  • Why we use Key Vault Premium for these labs

Introduction

Azure gives you many key management options. Here we will cover three of them: Azure Key Vault Standard and Premium, plus Azure Ket Vault Managed HSM. They share a common API surface but differ significantly in how keys are protected and who ultimately controls them. Choosing the right one has direct implications for your compliance and sovereignty posture.

Quick guidance

  • Azure Key Vault Standard — good for dev/test and low-sensitivity workloads: secrets, certs, software-protected keys.
  • Azure Key Vault Premium — production workloads needing HSM-backed keys; the right default for most CMK scenarios.
  • Azure Key Vault Managed HSM — top-tier compliance requirements (PCI DSS, sovereignty mandates) where single-tenant, customer-controlled key infrastructure is non-negotiable.

Azure Key Vault Standard

Standard tier vaults store keys using software-backed encryption (FIPS 140-2 Level 1). They support RSA and EC keys alongside secrets and certificates. Keys are logically isolated per vault but the underlying infrastructure is shared and ultimately controlled by Microsoft.

Standard is a good fit for development, test, and non-critical production use cases where HSM assurance is not a requirement.

References

  • Azure Key Vault overview
  • About keys, secrets, and certificates
  • Create and import keys in Key Vault (CLI)

Azure Key Vault Premium

Premium adds hardware-backed key storage. Keys are generated and protected inside Marvell LiquidSecurity HSMs that are now FIPS 140-3 Level 3 validated. The underlying HSMs are partitioned per customer but are still shared infrastructure — Microsoft holds the root of trust.

What you gain over Standard:

  • HSM-backed keys (RSA-HSM and EC-HSM) that never leave the HSM boundary.
  • Secure Key Release (SKR) support for Azure Confidential Computing scenarios.
  • Bring Your Own Key (BYOK) — import keys generated on-premises via a secure HSM transfer.

The API is identical to Standard. Upgrading from Standard to Premium requires no code changes.

References

  • Create HSM-protected keys in Key Vault Premium
  • Import HSM-protected keys to Key Vault (BYOK)
  • Generate and transfer HSM-protected keys for Azure Key Vault

Azure Key Vault Managed HSM

Managed HSM provides a dedicated HSM cluster per customer — FIPS 140-3 Level 3, single-tenant, and cryptographically isolated from other tenants. It is also PCI DSS and PCI 3DS compliant.

The key sovereignty story is materially different here:

  • The root of trust belongs to you. When you initialise a Managed HSM, you generate a security domain — a set of cryptographic materials that Microsoft never holds. You need it to recover or restore the HSM.
  • Even subscription Owners cannot access key material without being assigned an HSM role on the HSM itself. This is enforced by a dual-layer access control model.
  • Keys stay in the deployment region. There is no automatic geo-replication — you are responsible for cross-region backup and recovery.

Managed HSM supports keys only (no secrets or certificates) but adds symmetric AES keys that are not available in Key Vault.

Managed HSM uses a different endpoint (*.managedhsm.azure.net) and a local RBAC model (HSM roles like Managed HSM Crypto User) rather than Key Vault access policies. Applications written against AKV Premium can be re-pointed to a Managed HSM endpoint with minimal changes.

References

  • Azure Key Vault Managed HSM overview
  • Create keys in a Managed HSM (CLI quickstart)
  • Import HSM-protected keys to Managed HSM (BYOK)
  • Key management controls — Microsoft Sovereign Cloud

Comparison

Aspect Standard Premium Managed HSM
Tenancy Multi-tenant Multi-tenant (HSM partitioned) Single-tenant, dedicated cluster
Key protection Software (FIPS 140-2 L1) HSM (FIPS 140-3 L3) HSM (FIPS 140-3 L3)
PCI DSS No No Yes
Key types RSA, EC, secrets, certs RSA-HSM, EC-HSM, secrets, certs RSA, EC, AES (keys only)
Secure Key Release No Yes Yes
Root of trust Microsoft Microsoft Customer
Geo-redundancy Automatic Automatic Customer-managed
Cost Low (per-operation) Moderate High (per-hour cluster)

References

  • How to choose the right Azure key management solution

Soft delete and purge protection

Losing access to keys through administrative error or due to malicious intent by bad actors can have catastrophic impact. This is particularly important where those keys are used to encrypt Azure services via Customer Managed Key.

Data encrypted with customer managed keys will become permanently unrecoverable if the key is permanently deleted and therefore Azure enforces recoverability.

  • Soft delete is universally enabled across all Azure Key Vault SKUs.
  • The default (and maximum) retention period is 90 days. (The minimum is 7 days.)
  • The retention period is an immutable property and cannot be changed set.
  • Deleted key vaults without purge protection can be purged.
  • However, purge protection is mandatory for all Azure services using customer managed keys.
Example error message

Example command to enable customer managed key on a storage account:

az storage account update --name "<myStorageAccount>" --encryption-key-source Microsoft.Keyvault --encryption-key-vault "https://mykeyvault.vault.azure.net" --encryption-key-name "mykey"

Error message if you do not have purge protection enabled on the key vault:

(KeyVaultPolicyError) Keyvault policy recoverable is not set
Code: KeyVaultPolicyError
Message: Keyvault policy recoverable is not set

Soft enable and purge protection are mandatory for customer managed key scdenarioss.

Why we use Key Vault Premium for these labs

Managed HSM would be the production-grade choice for dedicated HSM isolation, but can become dangerously expensive. It runs to thousand USD per month for a minimum cluster.

💀 Deleted Managed HSMs are chargeable until permanently purged after the retention period.

  • The current usage fee per HSM pool is $3.20 per hour. ($76.80 per day, or $2,336 per Azure month of 730 hours.)
  • A Managed HSM has enforced soft delete and purge protection for customer managed key scenarios.
  • A deleted Managed HSM would charge an additional $6,912 over the default retention period of 90 days.
  • You may specify a shorter retention period at creation time.
  • Retention times are immutable properties and cannot be changed.
  • The minimum retention period is 7 days which equates to $537.60.

Key Vault Premium replicates the experience closely enough: same API, same SKR flow, same CMK integration patterns across Azure services. Where a real Managed HSM deployment would differ (security domain, HSM RBAC, backup/recovery), we highlight it in each lab.

Key Vault Premium does not have a fixed charge itself. It charges purely for the keys and their operations. The HSM backed keys are a little more expensive, but in practice the cost for lab exercises is relatively small.

Note that Azure Key Vault Standard does not support Secure Key Release which is required for the Confidential Compute labs.

References

  • Azure Key Vault pricing (Standard and Premium)
  • How to choose the right Azure key management solution
Source: https://www.azurecitadel.com/cmk/keyvaults/
Published: 06 Mar 2026
Printed:
Sovereignty scenarios Key management options 🧪 Azure Key Vault Premium