【发布时间】:2020-08-08 05:17:18
【问题描述】:
我们已通过服务连接(服务主体身份验证)在 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。
像这样:
但是这会导致 Azure DevOps -> Pipelines -> Library 出现错误:
指定的Azure服务连接需要有“Get, List” 选定密钥保管库的秘密管理权限。点击 “授权”以启用 Azure Pipelines 设置这些权限或 在 Azure 门户中管理机密权限。
如果我们为 Azure Key Vault 设置 Allow access from: All networks ,它的工作原理如前所述,但我们希望尽可能避免这种情况。
在管道中设置 Azure Key Vault 任务
或设置变量组然后切换回Private endpoint and selected networks 会导致部署时出现类似错误。
MyKey:“客户端地址未经授权,调用者不可信 服务。\r\n客户端地址:111.222.333.44\r\n调用方: appid=;oid=00000000-0000-0000-0000-000000000000;iss=https://sts.windows.net//\r\n保险柜: 我的避难所;位置=northeurope。指定的 Azure 服务连接 需要对选中的有Get、List秘密管理权限 密钥库。要设置这些权限,请下载 来自构建/发布日志的 ProvisionKeyVaultPermissions.ps1 脚本和 执行它,或从 Azure 门户设置它们。”
不幸的是,客户端地址每次都是新的,但 oid 和 iss 值是相同的。根据文档,只有IPv4 address or CIDR 可以添加到防火墙。有没有办法将 Azure 代理标记为受信任的 Microsoft 服务,或者这是一种不好的做法?不过,它看起来确实比 All networks 更安全。
【问题讨论】:
标签: azure azure-devops azure-keyvault