如何创建针对多个资源组范围的Azure DevOps服务连接

4
我有一个项目,其资源跨越3个资源组。我想创建一个服务连接,将其范围定位到所有这些资源组,以便我可以通过该服务连接在一个地方管理访问权限。目前,我已经创建了3个服务连接,为每个资源组创建一个服务连接。我不想将其范围定位到订阅,因为有其他团队处理该订阅中的项目。这将在未来给我带来维护和审计问题。
如果我创建一个服务主体并将其分配给3个资源组,然后将此服务主体附加到服务连接中,那么这样做是一个好的设计吗?
是否有更好的方法来实现这一点?

1
嗨,Venky,bbaywet的回答对你的问题有帮助吗? - Hugh Lin
2个回答

3
你不需要手动创建服务主体。你可以使用界面来创建服务主体,在第一个资源组上授予权限并自动为你配置连接。
完成后,查看服务连接以确定正在使用的服务主体,并在其他资源组上授予权限。
是的,这是一个好的设计,与3个服务主体相比唯一的缺点是,你对谁在Azure DevOps中通过服务连接的权限访问这3个资源组有更少的细化控制(因为你只有一个而不是3个)。

谢谢。您知道通过PowerShell / CLI / ARM自动化所有这些过程的方法吗? - Venkata Dorisala
我建议您针对此问题提出单独的问题,但是您可以使用PowerShell创建应用程序服务主体https://learn.microsoft.com/en-us/powershell/azure/azurerm/create-azure-service-principal-azureps?view=azurermps-6.13.0并将其分配给资源组。 https://azure.microsoft.com/en-us/resources/templates/101-rbac-builtinrole-resourcegroup/ 不确定如何在ADO上自动化服务连接部分。 - baywet
这里唯一需要注意的是,如果您通过Azure DevOps界面编辑连接,可能会创建一个新的ServicePrincipal和/或删除您的扩展权限。 - Joshua Drake

3
在Azure DevOps中创建新的服务连接时,将会创建一个Azure AD应用程序注册,并且将为您选择的资源组创建一个新的服务主体。

enter image description here

enter image description here

所以您可以转到任何资源组,然后使用访问控制(IAM)添加一个主体。选择添加角色分配选项,然后在角色网格中选择贡献者角色,按下一步。在下一个屏幕上,选择用户、组或服务主体作为分配访问的选项。单击“+选择成员”,搜索我们的AD注册应用程序名称和显示名称,然后从结果中选择相同的内容,单击“选择”按钮。最后,单击“审阅 + 分配”按钮。

enter image description here

我已经写了一篇详细的文章来解释这些步骤,你可以在这里阅读。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接