我有一个powershell脚本,它试图使用此命令检索存储在Azure密钥库中的秘密。
$password = (Get-AzureKeyVaultSecret -vaultName $vaultName -name $secretName).SecretValueText
当我在本地执行powershell脚本时,它工作得非常好。但是,当我尝试在Azure Devops上做同样的事情时,它失败了,给出了下面的错误。
[error]Operation returned an invalid status code 'Forbidden'
我觉得这不是访问策略问题,因为我能够使用本地运行的powershell脚本成功地对我的vault执行读/写操作。
发布于 2019-03-27 07:00:21
我很确定这是一个访问策略问题。
转到您的DevOps项目设置-管道-服务连接,然后单击“更新服务连接”(使用完整版本的对话框)。您可以在那里找到订阅ID和服务主体Id。
然后,您必须为此SPN提供显式权限:
Login-AzureRmAccount -subscription <YourSubscriptionID>
$spn= Get-AzureRmADServicePrincipal -spn <YourSPN>
Set-AzureRmKeyVaultAccessPolicy -VaultName <YourVaultName> -ObjectId $spn.Id -PermissionsToSecrets get,list;
https://stackoverflow.com/questions/55367071
复制相似问题