← cd ~/roles
// roles/azure · security
Key Vault ReaderAzure built-in role
Read metadata of key vaults and its certificates, keys, and secrets. Cannot read sensitive values such as secret contents or key material. Only works for key vaults that use the 'Azure role-based access control' permission model.
| Role ID | 21090545-7ca7-4776-b22c-e363652d74d2 |
|---|---|
| Category | Security |
| Actions | 9 |
| Data actions | 2 |
Before you assign it
- It reaches the data, not just the resource. It has 2 data actions, such as reading blobs, secrets or messages.
What it can do
| Permission | What it allows |
|---|---|
Microsoft.Authorization/*/read | Any read operation on anything under Microsoft.Authorization |
Microsoft.Insights/alertRules/* | Every operation under Microsoft.Insights/alertRules |
Microsoft.Resources/subscriptions/resourceGroups/read | Gets or lists resource groups. |
Microsoft.Support/* | Every operation under Microsoft.Support |
Microsoft.KeyVault/checkNameAvailability/read | Checks that a key vault name is valid and is not in use |
Microsoft.KeyVault/deletedVaults/read | View the properties of soft deleted key vaults |
Microsoft.KeyVault/locations/*/read | Any read operation on anything under Microsoft.KeyVault/locations |
Microsoft.KeyVault/vaults/*/read | Any read operation on anything under Microsoft.KeyVault/vaults |
Microsoft.KeyVault/operations/read | Lists operations available on Microsoft.KeyVault resource provider |
Data actions
| Permission | What it allows |
|---|---|
Microsoft.KeyVault/vaults/*/read | Any read operation on anything under Microsoft.KeyVault/vaults |
Microsoft.KeyVault/vaults/secrets/readMetadata/action | List or view the properties of a secret, but not its value. |
Assign it
Scope it as tightly as you can: a resource or resource group rather than the whole subscription.
az role assignment create \
--assignee "jane.doe@contoso.com" \
--role "Key Vault Reader" \
--scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"New-AzRoleAssignment -SignInName "jane.doe@contoso.com" `
-RoleDefinitionName "Key Vault Reader" `
-Scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"resource assignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(resourceGroup().id, principalId, '21090545-7ca7-4776-b22c-e363652d74d2')
properties: {
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '21090545-7ca7-4776-b22c-e363652d74d2')
principalId: principalId
}
}Who already has it?
authorizationresources
| where type == "microsoft.authorization/roleassignments"
| where tostring(properties.roleDefinitionId) endswith "21090545-7ca7-4776-b22c-e363652d74d2"
| project principalId = tostring(properties.principalId), principalType = tostring(properties.principalType), scope = tostring(properties.scope)Other security roles
- App Compliance Automation Reader · 1 permission
- Key Vault Crypto Service Release User · 1 permission
- Security Assessment Contributor · 1 permission
- Attestation Reader · 2 permissions
- Key Vault Secrets User · 2 permissions
- Attestation Contributor · 3 permissions
- Locks Contributor · 3 permissions
- Key Vault Certificate User · 4 permissions