无法在Azure Devops上运行的PowerShell脚本中访问Azure Key保管库机密

问题描述 投票:1回答:1

我有一个powershell脚本,尝试使用此命令检索存储在Azure密钥保管库中的秘密。

$password = (Get-AzureKeyVaultSecret -vaultName $vaultName -name $secretName).SecretValueText

当我在本地执行powershell脚本时,它工作正常。但是,当我尝试在Azure Devops上执行相同操作时,它无法给出以下错误。

[error]Operation returned an invalid status code 'Forbidden'

我觉得这不是访问策略问题,因为我能够使用本地运行的PowerShell脚本在我的保险库上成功执行读/写操作。

azure powershell azure-devops azure-resource-manager azure-keyvault
1个回答
2
投票

我很确定这是一个访问策略问题。

转到DevOps项目设置 - 管道 - 服务连接,然后单击“更新服务连接”(使用完整版本的对话框)。在那里,您可以找到订阅ID和服务主体ID。

然后,您必须为此SPN提供显式权限:

Login-AzureRmAccount -subscription <YourSubscriptionID>
$spn= Get-AzureRmADServicePrincipal -spn <YourSPN>
Set-AzureRmKeyVaultAccessPolicy -VaultName <YourVaultName> -ObjectId $spn.Id -PermissionsToSecrets get,list;
© www.soinside.com 2019 - 2024. All rights reserved.