Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
keyvault_rbac_enabledProvider: Azure
Service:
keyvaultSeverity: HIGH
Categories:
identity-accessResource type:
microsoft.keyvault/vaultsWhat this check verifies
Azure Key Vault uses the Azure RBAC permission model for data-plane access to keys, secrets, and certificates, rather than legacy access policies. Evaluates whether data access is managed through role assignments at the vault.Risk
Without Azure RBAC, data access relies on coarse access policies. Control-plane Contributors can grant themselves data-plane rights, enabling secret or key exfiltration and unauthorized crypto operations. Lack of JIT and least-privilege weakens confidentiality and integrity and hinders auditing.Recommendation
Adopt Azure RBAC for Key Vault data access and design roles with least privilege at appropriate scopes (prefer vault-level per app/env). Use Privileged Identity Management for JIT, restrict control-plane Contributor rights, and monitor role assignments. Role assignments aren’t preserved after soft-delete recovery.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az keyvault update —name <KEY_VAULT_NAME> —resource-group <RESOURCE_GROUP_NAME> —enable-rbac-authorization true
References
- https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide?tabs=azure-cli
- https://learn.microsoft.com/en-gb/azure/role-based-access-control/role-assignments-portal?tabs=current
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_rbac_enabled. 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