tools/e2etesting/SetKeyVaultPermissions.ps1 (30 lines of code) (raw):

Param( [string] $ResourceGroupName, [string] $ServicePrincipalName ) # Stop execution when an error occurs. $ErrorActionPreference = "Stop" if (!$ResourceGroupName) { Write-Error "ResourceGroupName not set." } $keyVaults = Get-AzKeyVault -ResourceGroupName $ResourceGroupName if (!$keyVaults) { Write-Error "Could not find any KeyVaults in Resource Group ($ResourceGroupName)" } if ($ServicePrincipalName) { $keyVaults | %{ Write-Host "Adding List,Get,Set-Permissions for secrets of vault '$($_.VaultName)' for ServicePrincipalName '$($ServicePrincipalName)'" Set-AzKeyVaultAccessPolicy -VaultName $_.VaultName -ResourceGroupName $ResourceGroupName -ServicePrincipalName $ServicePrincipalName -PermissionsToSecrets get,list,set } } else { if ($azContext.Account.Id) { $keyVaults | %{ Write-Host "Adding List,Get,Set-Permissions for secrets of vault '$($_.VaultName)' for UserPrincipalName '$($azContext.Account.Id)'" Set-AzKeyVaultAccessPolicy -VaultName $_.VaultName -ResourceGroupName $ResourceGroupName -UserPrincipalName $azContext.Account.Id -PermissionsToSecrets get,list,set } } else { Write-Error "Not logged in" -ErrorAction Stop } }