For example, if you want to use Azure automation account to run runbook command
Get-AzureKeyVaultSecret
, we should give that SP permissions like:
Microsoft Authorization
:
Microsoft Automation
: Microsoft.Automation/automationAccounts/runbooks/read
Microsoft.KeyVault
need those permissions:
Microsoft.KeyVault/vaults/read
Microsoft.KeyVault/vaults/secrets/read
Microsoft.KeyVault/vaults/accessPolicies/write
Normally, we can setup roles for each provider. For example, Microsoft.KeyVault
, we want SP can update key vault or read secrets, we can add Microsoft.KeyVault/vaults/write
and Microsoft.KeyVault/vaults/secrets/read
and Microsoft.KeyVault/vaults/read
.
PS C:\Users\jason> Get-AzureRmProviderOperation * | ?{ $_.ProviderNamespace -eq 'Microsoft Key Vault' } | select Operation, OperationName
Operation OperationName
--------- -------------
Microsoft.KeyVault/register/action Register Subscription
Microsoft.KeyVault/unregister/action Unregister Subscription
Microsoft.KeyVault/hsmPools/read View HSM pool
Microsoft.KeyVault/hsmPools/write Create or Update HSM pool
Microsoft.KeyVault/hsmPools/delete Delete HSM pool
Microsoft.KeyVault/hsmPools/joinVault/action Join KeyVault to HSM pool
Microsoft.KeyVault/checkNameAvailability/read Check Name Availability
Microsoft.KeyVault/vaults/read View Key Vault
Microsoft.KeyVault/vaults/write Update Key Vault
Microsoft.KeyVault/vaults/delete Delete Key Vault
Microsoft.KeyVault/vaults/deploy/action Use Vault for Azure Deployments
Microsoft.KeyVault/vaults/secrets/read View Secret Properties
Microsoft.KeyVault/vaults/secrets/write Update Secret
Microsoft.KeyVault/vaults/accessPolicies/write Update Access Policy
Microsoft.KeyVault/operations/read Available Key Vault Operations
Microsoft.KeyVault/deletedVaults/read View Soft Deleted Vaults
Microsoft.KeyVault/locations/operationResults/read Check Operation Result
Microsoft.KeyVault/locations/deletedVaults/read View Soft Deleted Key Vault
Microsoft.KeyVault/locations/deletedVaults/purge/action Purge Soft Deleted Key Vault
After that completed, we can assign this role to your SP which you want to Get-AzureKeyVaultSecret
. We can assign many roles to one SP.
Note:
Every Service principal need Microsoft Authorization
permission, or this SP will not login to Azure.
Normally, Azure PowerShell command Get
need read permission, New
, set
and Update
need write permission.
Hope this helps:)