You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps实现跨租户VNET对等连接及服务连接跨租户授权?

跨租户授予Azure DevOps服务连接访问权限的最佳方案

针对你用Azure DevOps(ADO)+Terraform实现跨租户VNET对等连接的场景,以下是三种实用的权限授予方案,可根据业务规模和需求选择:

方案一:直接为租户A的服务主体在租户B中分配角色

ADO的服务主体类型服务连接本质对应租户A Azure AD中的应用注册,直接给这个身份在租户B中授权是最直接的方式:

  • 先获取租户A服务连接对应的服务主体ID:可在ADO服务连接详情页查看,或用Azure CLI命令az ad sp show --id <服务主体应用ID>获取。
  • 在租户B中,由具备角色分配权限的管理员执行以下操作:
    1. 邀请该服务主体加入租户B:az ad sp invite --id <租户A的服务主体ID> --tenant <租户B的租户ID>
    2. 待服务主体被添加后,在目标VNET或其所属资源组上分配Network Contributor角色:
      az role assignment create --assignee <租户A的服务主体ID> --role "Network Contributor" --scope "/subscriptions/<租户B订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Network/virtualNetworks/<VNET名>"
      
  • 完成后,Terraform即可通过该服务连接操作租户B侧的VNET对等连接配置。
    适用场景:长期稳定的单跨租户资源管理需求,无需额外中间层。

方案二:用Azure Lighthouse实现跨租户集中管控

如果存在多租户、多资源的规模化管理需求,Azure Lighthouse是更高效的选择:

  • 在租户B中创建Azure Lighthouse授权,将租户A的服务主体(对应ADO服务连接)纳入授权范围,授予其目标VNET所在订阅/资源组的Network Contributor角色。
  • 授权生效后,租户A的服务连接可直接管理租户B中的指定资源,无需单独邀请服务主体,Lighthouse会自动处理跨租户信任关系。
  • Terraform配置中只需指定租户B的订阅ID,无需额外身份配置。
    适用场景:多租户资源统一管理,权限集中审计与管控。

方案三:临时使用租户B专属服务连接(一次性操作)

若只是临时建立对等连接,不想留存长期跨租户权限,可采用此方案:

  • 在ADO中创建一个基于租户B的服务连接(需租户B的管理员权限),专门用于配置对等连接的租户B侧。
  • Terraform代码中配置两个Azure Provider,分别关联租户A和租户B的服务连接,分别创建对等连接的两端。
  • 操作完成后即可删除租户B的服务连接,避免权限长期留存。
    适用场景:临时或低频的跨租户操作,安全性更高。

通用注意事项

  • 遵循最小权限原则:仅给服务连接分配目标VNET的Network Contributor权限,不要扩大到整个订阅或资源组。
  • 权限验证:用Azure CLI验证权限是否生效,比如在租户A用服务主体身份执行az network vnet peering list --subscription <租户B订阅ID> --resource-group <资源组名>,确认能正常获取VNET信息。
  • Terraform Provider配置:确保provider块中租户ID、订阅ID与目标资源匹配,且服务主体身份正确。

内容的提问来源于stack exchange,提问作者SRE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:05:08