Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
虽然 Azure 资源管理器服务连接的建议选项是将将工作负荷联合身份验证与应用注册或托管标识配合使用,但有时可能需要改用代理分配的托管标识或发布配置文件。 本文将介绍如何创建一个 Azure 资源管理器服务连接,该连接使用具有机密的应用注册;一个连接到在 Azure 虚拟机上运行的自承载代理的服务连接;以及一个使用发布配置文件连接到 Azure 应用服务应用的服务连接。
你还可以使用 Azure 资源管理器连接到 Azure 政府云和 Azure Stack。
使用密钥创建应用注册(自动)
选择此选项后,Azure DevOps 会自动查询要连接到的订阅、管理组或机器学习工作区,并创建用于身份验证的机密。
警告
使用机密需要手动轮换和管理,不建议这样做。 工作负载身份联合是首选凭据类型。
如果以下所有项都适用于你的方案,则可以使用此方法:
- 你以 Azure Pipelines 组织和 Azure 订阅的所有者身份登录。
- 无需进一步限制用户通过服务连接访问的 Azure 资源的权限。
- 你未连接到 Azure Stack 或 Azure 美国政府 环境。
- 你未从 Azure DevOps Server 2019 或早期版本的 Team Foundation Server 进行连接。
> 在 Azure DevOps 项目中,转到“项目设置”“服务连接”。
有关详细信息,请参阅打开项目设置。
依次选择新建服务连接、Azure 资源管理器、下一步。
选择应用注册(自动),凭据为机密。
选择 范围级别。 选择订阅、管理组或机器学习工作区。 管理组是一些容器,可以帮助跨多个订阅管理访问权限、策略和符合性。 机器学习工作区用于创建机器学习项目。
对于订阅范围,请输入以下参数:
参数 说明 订阅 必需。 选择 Azure 订阅。 资源组 必需。 选择 Azure 资源组。 对于 管理组 范围,请选择 Azure 管理组。
对于机器学习工作区范围,请输入以下参数:
参数 说明 订阅 必需。 选择 Azure 订阅。 资源组 必需。 选择包含工作区的资源组。 机器学习工作区 必需。 选择 Azure 机器学习工作区。
输入 服务连接名称。
(可选)输入服务连接的说明。
选择 “授予对所有管道的访问权限 ”可让所有管道使用此连接。 不建议使用此选项。 而是 单独授权每个管道使用服务连接。
选择保存。
创建与使用托管标识的 VM 的 Azure 资源管理器服务连接
注意
若要使用托管标识进行身份验证,必须在 Azure 虚拟机 (VM) 上使用自托管代理。
你可以将 Azure VM 上的自托管代理配置为使用 Microsoft Entra ID 中的 Azure 托管标识。 在此方案中,你可以使用代理分配的托管标识授予代理对任何支持 Microsoft Entra ID 的 Azure 资源(例如 Azure Key Vault 实例)的访问权限。
> 在 Azure DevOps 项目中,转到“项目设置”“服务连接”。
有关详细信息,请参阅打开项目设置。
选择“新建服务连接”,然后选择“Azure 资源管理器”。
为标识类型选择托管标识(由代理分配)。
对于环境,请选择环境名称(Azure Cloud、Azure Stack 或政府云选项)。
选择范围级别。 选择订阅、管理组或机器学习工作区。 管理组是一些容器,可以帮助跨多个订阅管理访问权限、策略和符合性。 机器学习工作区用于创建机器学习项目。
对于订阅范围,请输入以下参数:
参数 说明 订阅 ID 必需。 输入 Azure 订阅 ID。 订阅名称 必需。 输入 Azure 订阅名称。 对于管理组范围,请输入以下参数:
参数 说明 管理组 ID 必需。 输入 Azure 管理组 ID。 管理组名称 必需。 输入 Azure 管理组名称。 对于机器学习工作区范围,请输入以下参数:
参数 说明 订阅 ID 必需。 输入 Azure 订阅 ID。 订阅名称 必需。 输入 Azure 订阅名称。 资源组 必需。 选择包含工作区的资源组。 ML 工作区名称 必需。 输入现有 Azure 机器学习工作区的名称。 ML 工作区位置 必需。 输入现有 Azure 机器学习工作区的位置。
输入租户 ID。
输入服务连接名称。
(可选)输入服务连接的说明。
选择 “授予对所有管道的访问权限 ”可让所有管道使用此连接。 不建议使用此选项。 而是 单独授权每个管道使用服务连接。
选择保存。
创建新服务连接后:
- 如果在 UI 中使用此服务连接,请选择在管道的“Azure 订阅”设置中分配的连接名称。
- 如果在 YAML 文件中使用服务连接,请将连接名称作为
azureSubscription
值复制到代码中。
确保 VM(代理)具有适当的权限。
例如,如果你的代码需要调用 Azure 资源管理器,请在 Microsoft Entra ID 中使用基于角色的访问控制 (RBAC) 为 VM 分配适当的角色。
有关详细信息,请参阅如何使用 Azure 资源的托管标识?和使用基于角色的访问控制来管理对 Azure 订阅资源的访问。
有关该过程的详细信息,请参阅排查 Azure 资源管理器服务连接问题。
使用发布配置文件创建 Azure 资源管理器服务连接
你可以使用发布配置文件创建服务连接。 你可以使用发布配置文件创建与 Azure 应用服务的服务连接。
> 在 Azure DevOps 项目中,转到“项目设置”“服务连接”。
有关详细信息,请参阅打开项目设置。
依次选择新建服务连接、Azure 资源管理器、下一步。
为标识类型选择发布配置文件。
输入以下参数:
参数 说明 订阅 必需。 选择现有的 Azure 订阅。 如果未显示任何 Azure 订阅或实例,请参阅排查 Azure 资源管理器服务连接问题。 WebApp 必需。 输入 Azure 应用服务应用的名称。 服务连接名称 必需。 在任务属性中引用此服务连接时将使用的名称。 不是 Azure 订阅的名称。 描述 可选。 服务连接的说明。 选择 “授予对所有管道的访问权限 ”可让所有管道使用此连接。 不建议使用此选项。 而是 单独授权每个管道使用服务连接。
选择保存。
创建新服务连接后:
- 如果在 UI 中使用此服务连接,请选择在管道的“Azure 订阅”设置中分配的连接名称。
- 如果在 YAML 文件中使用服务连接,请复制连接名称并将其作为
azureSubscription
值粘贴到代码中。
连接到 Azure 政府云
有关连接到 Azure 政府云的信息,请参阅从 Azure Pipelines(Azure 政府云)进行连接。
连接到 Azure Stack
有关连接到 Azure Stack 的信息,请参阅以下文章:
有关详细信息,请参阅排查 Azure 资源管理器服务连接问题。
帮助和支持
- 浏览故障排除提示。
- 获取有关 Stack Overflow 的建议。
- 在 Azure DevOps 开发人员社区中发布问题、搜索答案或建议功能。
- 获取 Azure DevOps 支持。