3.3.6 Enable Role Based Access Control for Azure Key Vault

Information

The recommended way to access Key Vaults is to use the Azure Role-Based Access Control (RBAC) permissions model.

Azure RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources. It allows users to manage Key, Secret, and Certificate permissions. It provides one place to manage all permissions across all key vaults.

Rationale:

The new RBAC permissions model for Key Vaults enables a much finer grained access control for key vault secrets, keys, certificates, etc., than the vault access policy. This in turn will permit the use of privileged identity management over these roles, thus securing the key vaults with JIT Access management.

Impact:

Implementation needs to be properly designed from the ground up, as this is a fundamental change to the way key vaults are accessed/managed. Changing permissions to key vaults will result in loss of service as permissions are re-applied. For the least amount of downtime, map your current groups and users to their corresponding permission needs.

Solution

Remediate from Azure Portal
Key Vaults can be configured to use Azure role-based access control on creation.
For existing Key Vaults:

From Azure Home open the Portal Menu in the top left corner

Select Key Vaults

Select a Key Vault to audit

Select Access configuration

Set the Permission model radio button to Azure role-based access control, taking note of the warning message

Click Save

Select Access Control (IAM)

Select the Role Assignments tab

Reapply permissions as needed to groups or users

Remediate from Azure CLI
To enable RBAC Authorization for each Key Vault, run the following Azure CLI command:

az keyvault update --resource-group <resource_group> --name <vault_name> --enable-rbac-authorization true

Remediate from PowerShell
To enable RBAC authorization on each Key Vault, run the following PowerShell command:

Update-AzKeyVault -ResourceGroupName <resource_group> -VaultName <vault_name> -EnableRbacAuthorization $True

Default Value:

The default value for Access control in Key Vaults is Vault Policy.

See Also

https://workbench.cisecurity.org/benchmarks/16820

Item Details

Category: ACCESS CONTROL, AUDIT AND ACCOUNTABILITY, MEDIA PROTECTION

References: 800-53|AC-2, 800-53|AC-3, 800-53|AC-5, 800-53|AC-6, 800-53|AC-6(1), 800-53|AC-6(7), 800-53|AU-9(4), 800-53|MP-2, CSCv7|14.6

Plugin: microsoft_azure

Control ID: 65f3e1f713d12510ddb8439eada7754f3b0a4280d91ab335766a97691a05206e