我们在尝试在KeyVault上添加访问策略时遇到问题,以便为自动化帐户服务主体上的机密提供权限。我们使用下面的cmdlet:
Set-AzureRmKeyVaultAccessPolicy -VaultName "KeyVaultName" -ApplicationId "0aaa8314-872d-41ef-a75e-d3a5ec5b31e6" -ObjectId "443d03a7-6b76-47d1-9406-8fb87c17bbc3" -PermissionsToSecrets recover,delete,backup,set,restore,list,get
当cmdlet执行时,我们在门户网站中看到类似的内容。请注意看起来像用户的图标。
尽管在访问策略中看到了这一点,但在尝试访问keyvault时,自动化帐户的Runbook仍会失败并显示错误“Forbidden”:
Get-AzureKeyVaultSecret : Operation returned an invalid status code 'Forbidden'
At C:\Modules\User\CustomModule.psm1:28 char:22
+ ... clientID = (Get-AzureKeyVaultSecret -VaultName $global:ManagementKeyV ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzureKeyVaultSecret], KeyVaultErrorException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.GetAzureKeyVaultSecret
尝试以多种方式使用以下cmdlet为自动化帐户服务主体提供对keyvault的访问,但仍获得相同的结果。
Set-AzureRmKeyVaultAccessPolicy -VaultName "KeyVaultName" -ObjectId "443d03a7-6b76-47d1-9406-8fb87c17bbc3" -PermissionsToSecrets recover,delete,backup,set,restore,list,get -BypassObjectIdValidation
Set-AzureRmKeyVaultAccessPolicy -VaultName "KeyVaultName" -ServicePrincipalName ((Get-AzureRmADServicePrincipal -ApplicationId "0aaa8314-872d-41ef-a75e-d3a5ec5b31e6").ServicePrincipalNames[0]) -PermissionsToSecrets recover,delete,backup,set,restore,list,get
但是,从门户网站手动添加相同的服务主体后,我们会看到同一服务主体的不同图标。
有人可以帮帮忙吗?我做错了吗?
非常感谢!
答案 0 :(得分:0)
试试这个:
Set-AzureRmKeyVaultAccessPolicy [-VaultName] -ServicePrincipalName" 0aaa8314-872d-41ef-a75e-d3a5ec5b31e6" -PermissionsToSecrets恢复,删除,备份,设置,恢复,列表,获取
其中SPN是申请ID。
我知道这令人困惑。