我为我的开发环境设置了一个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代理进行访问?
1条答案
按热度按时间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规则。
以下是我的样本:
这是一个关于如何将IP添加到Azure keyvault防火墙的文档。