运行 DevOps 服务器部署模板时,Azure LinkedAuthorization 在 Active Directory 帐户/Key Vault 身份验证上失败

Azure LinkedAuthorizationFailed on Active Directory Account / Key Vault Authentication when running DevOps Server Deployment Template

我正在尝试将 Azure DevOps Server 的本地实例部署到 Azure 政府订阅中的 VM(从本质上讲,它似乎不支持标准 DevOps)。

支持 material 直接从 Microsoft 引用了此模板:

https://github.com/usri/deploy_DevOps_Server_AzureSQL

所有引用的资源都是从头开始创建的,目的是获取此服务器 运行ning。

这需要一个 AAD 帐户以及存储在 Key Vault 中的关联密码。但是,我对 运行 模板 returns 所做的每一次尝试都会在 'Write VirtualMachines' 步骤(当所有其他组件都通过时)出现以下错误:

The client has permission to perform action 'Microsoft.Compute/images/read' on scope '(MY_SUBSCRIPTION)\(MY_RESOURCEGROUP)\(VM)', however the current tenant '(MY_KEYVAULT)' is not authorized to access linked subscription '(ID in the template with the deployment files)'

在我看来,无法从 Key Vault 中检索密码 - 是 Secret 的格式问题吗?某个地方的访问控制问题?我已经尝试了两者的许多不同组合。希望这只是一个小问题..

我是那个 repo 中代码的原作者。我继续将拉取请求合并到应该解决您的问题的回购中。我做了以下事情:

  • 更新了自述文件以包含有关创建图像的信息
  • 使用 Key Vault 和图像引用的参数更新了 azuredeploy.json
  • 更新了 ps1 文件以消除 KV 的硬链接(我的疏忽特别严重,我深表歉意)。
  • 更新并测试了最新版本的 Azure DevOps Server 2020 的所有内容

这应该可以解决您的问题和其他几个相关问题。我从头开始重新测试了整个部署,它按设计工作。其他一些快速说明:

USRI 及其所有存储库(包括此处使用的存储库)不是 Microsoft 官方存储库。它们代表了一个致力于受监管实体客户的开源 Azure 社区。在那里做出贡献的成员主要是 Microsoft 员工,repos 本身只是代表有趣的,有时可能会引起兴趣的小众模板。

这个特定的 repo 显示了一种方式,当没有可用或不允许的 Internet 连接时,可以使用 Azure 模板部署服务。我刚刚使用了 Azure DevOps Server,因为它很有趣并且受监管的行业客户使用它。

祝一切顺利