Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
keyvault_recoverableProvider: Azure
Service:
keyvaultSeverity: HIGH
Categories:
resilienceResource type:
microsoft.keyvault/vaultsWhat this check verifies
Azure Key Vault recoverability requires bothenable_soft_delete and enable_purge_protection. With these enabled, vault objects remain recoverable after deletion and cannot be permanently purged during the retention period.
Risk
Absent these protections, deleted vaults or objects can be permanently removed, cutting access to keys, secrets, and certificates. This can render data unreadable, break app authentication, and halt signing/verification, degrading availability and integrity. Malicious insiders can purge to block recovery.Recommendation
Enable bothenable_soft_delete and enable_purge_protection on all vaults. Enforce with policy, restrict purge/recover to least privilege and apply separation of duties. Keep backups and test recovery. Monitor delete/purge with alerts. Adjust retention to business needs to strengthen defense in depth.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az keyvault update -g <resourceGroupName> -n <keyVaultName> —enable-soft-delete true —enable-purge-protection true
References
- https://learn.microsoft.com/en-us/azure/key-vault/general/key-vault-recovery?tabs=azure-cli
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/azure/KeyVault/enable-key-vault-recoverability.html#
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = keyvault_recoverable. 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