是否可以在Azure管道代理上使用带有RBAC的Azure KeyVault?

62lalag4  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(98)

我为我的开发环境设置了一个Azure Keyvault,使用RBAC的建议访问策略进行授权。我已经使用本地代理设置了其他管道,这些代理通过服务主体访问这个密钥库,并且工作得很好,但是我的Azure代理失败并发出警告:

{"error":{"code":"Forbidden","message":"Client address is not authorized and caller is not a trusted service.\r\nClient address: XXX.XXX.XXX.XXX\r\nCaller: appid=REDACTED;oid=REDACTED;iss=https://sts.windows.net/REDACTED/\r\nVault: MY-KEYVAULT;location=REDACTED","innererror":{"code":"ForbiddenByFirewall"}}}

然后我决定回去读一些像这样的入门指南,并发现了以下注解:

Note:
Azure Key Vaults that use Azure role-based access control (Azure RBAC) are not supported.

是否无法设置KeyVault以允许使用建议的RBAC设置从Azure Pipeline代理进行访问?

yb3bgrhw

yb3bgrhw1#

{“error”:{“code”:“Forbidden”,“message”:“客户端地址未经授权,调用方不是受信任的服务。\r\n客户端地址:XXX.XXX. XXX.XXX\r\n呼叫方:appid=REDACTED; id =REDACTED; iss=https://sts.windows.net/REDACTED/\r\n存储库:MY-KEYVANOTE; location=REDACTED”,“innererror”:{“code”:“ForbiddenByFirewall”}
从错误消息中,似乎您的azure keyvault已启用防火墙。
您可以尝试将Azure Pipeline代理IP添加到Azure keyvault防火墙白色列表。由于Azure Pipelines Agent的IP不固定,因此您可以使用脚本获取当前IP并添加到Azure KeyVault防火墙。
然后,您可以使用Azure密钥保管库任务来下载密钥保管库。
最后,您可以删除IP规则。
以下是我的样本:

steps:
- task: AzurePowerShell@5
  displayName: 'Azure PowerShell script: InlineScript'
  inputs:
    azureSubscription: serviceconnection
    ScriptType: InlineScript
    Inline: |
     $IP= Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
     
     $IP
     
     Add-AzKeyVaultNetworkRule -VaultName "keyvaultname" -IpAddressRange "$IP"
    preferredAzurePowerShellVersion: 3.1.0

- task: AzureKeyVault@1
  displayName: 'Azure Key Vault: kevin0225'
  inputs:
    azureSubscription: serviceconnection
    KeyVaultName: kevin0225

- task: AzurePowerShell@5
  displayName: 'Azure PowerShell script: InlineScript'
  inputs:
    azureSubscription: serviceconnection
    ScriptType: InlineScript
    Inline: |
     $IP= Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
     
     $IP
     
     Remove-AzKeyVaultNetworkRule -VaultName "keyvaultname" -IpAddressRange "$IP"
    preferredAzurePowerShellVersion: 3.1.0

这是一个关于如何将IP添加到Azure keyvault防火墙的文档。

相关问题