【问题标题】:Unable to access Azure Key vault secret in a powershell script running on Azure Devops无法在 Azure Devops 上运行的 powershell 脚本中访问 Azure Key Vault 机密
【发布时间】:2019-08-17 10:07:50
【问题描述】:

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

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

当我在本地执行我的 powershell 脚本时,它工作得非常好。但是,当我尝试在 Azure Devops 上执行相同操作时,它会出现以下错误。

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

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

【问题讨论】:

  • 您的密钥库是否仅限于某些 IP 地址范围?
  • @DanielMann 我已允许从所有网络访问。

标签: azure powershell azure-devops azure-resource-manager azure-keyvault


【解决方案1】:

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

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

然后您必须明确授予此 SPN 的权限:

Login-AzureRmAccount -subscription <YourSubscriptionID>
$spn= Get-AzureRmADServicePrincipal -spn <YourSPN>
Set-AzureRmKeyVaultAccessPolicy -VaultName <YourVaultName> -ObjectId $spn.Id -PermissionsToSecrets get,list;

【讨论】:

  • 这是一个真正的帮助。泰。
猜你喜欢
  • 2020-02-24
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 2018-07-26
  • 2020-01-04
  • 2020-08-08
相关资源
最近更新 更多