Azure DevOps->管道->库->访问Azure密钥保管库->密钥保管库不允许从所有网络访问

问题描述 投票:0回答:2

我们已经通过Service Connections(服务主体身份验证)在Azure DevOps和Azure Key Vault之间建立了连接。但是,为了使其正常工作,我们需要将Azure Key Vault-> Networking标记为“允许来自:All networks”的访问。鉴于我们在这里存储了机密,我们想使用选项Private endpoint and selected networks代替Allow trusted Microsoft services to bypass this firewall?设置为Yes

喜欢这个:

enter image description here

但是这会导致Azure DevOps上的错误->管道->库:

指定的Azure服务连接需要具有“获取,列出”所选密钥库的机密管理权限。请点击“授权”以启用Azure管道设置这些权限或在Azure门户中管理秘密权限。

enter image description here

如果我们为Azure Key Vault设置“允许来自:All networks的访问,它会按照前面所述的方式工作,但如果可能的话,我们希望避免这样做。

enter image description here

在管道中设置Azure Key Vault任务

enter image description here

或设置变量组,然后切换回Private endpoint and selected networks会导致部署时发生类似的错误。

enter image description here

MyKey:“客户端地址未经授权,且呼叫者不受信任服务。\ r \ n客户地址:111.222.333.44 \ r \ n来电者:appid = ; oid = 00000000-0000-0000-0000-000000000000; iss = https://sts.windows.net/ / \ r \ n保险柜:我的保险柜;位置=北欧洲。指定的Azure服务连接需要具有对所选对象的“获取,列出秘密管理”权限密钥库。要设置这些权限,请下载生成/发布日志中的ProvisionKeyVaultPermissions.ps1脚本和执行它,或从Azure门户进行设置。“

enter image description here

不幸的是,每次客户地址都是新的,但是oidiss值相同。根据文档,只能将IPv4 address or CIDR添加到防火墙。有什么方法可以将Azure代理标记为受信任的Microsoft服务,或者这是一种不好的做法?不过,它似乎比All networks更安全。

azure azure-devops azure-keyvault
2个回答
0
投票

(作者评论后更新)

您是否正在使用Microsoft托管代理?它们是动态的,也许您可​​以在Azure中的VM上托管代理。您将知道机器的IP,并在KV设置中允许它。

签出Self-Hosted Agents在Microsoft文档中。


0
投票

这仍然是一个未解决的问题-Issue

可能某些解决方案如URL中所述

  • 在您的代理的管道和白名单IP中添加任务,然后从keyvault获得值后,删除白名单。

  • 也许每周都有白名单Azure DevOps IP列表,但再次看起来似乎不可靠

  • @ Grand的建议实际上也是解决方案之一。

© www.soinside.com 2019 - 2024. All rights reserved.