Azure Virtual Network (18) 跨租户间的VNet Peering

  《Windows Azure Platform 系列文章目录

  之前做项目正好遇到,在这里记录一下。

  以下这几种情况,都具备跨租户间的vnet peering使用场景:

  1.当我们的母公司和子公司,使用2个不同的Azure 租户。在特殊情况下,需要通过内网互联传输数据。

  2.当我们的第三方运维公司的Azure环境,和多个甲方客户的Azure环境,需要通过内网互联进行系统维护。

  前提条件:

  1.在两个租户下,至少存在1个账户,对2个VNet都具有peering的权限

  2.租户间的VNet IP Range不能重叠

  具体操作步骤:

  1.在租户B里,把租户A的某一个用户设置为Guest User

  2.在租户B里,把登录租户B的连接,发送给该Guest User

  3.在租户B的资源组里,把Tenant A的用户设置好RBAC权限,使其对Tenant B的某一个VNet具备peering权限

  4.新开一个浏览器,把步骤2的连接打开,同时以租户A的身份,登录Azure Portal  

  5.登录完毕后,以租户A的身份可以在Azure Portal,同时浏览到2个租户信息(租户A和租户B)

  6.我们以租户A的身份,设置两个VNet之前的Peering

  接下来我们详细介绍一下:

  假设我们有2个租户:

租户 目录 用户名 资源组 虚拟网络名称 VNet IP Range 前提条件
A contosoAAA userA@contosoAAA.partner.onmschina.cn A-RG A-VNet 10.0.0.0/24 用户A有对A-VNet的peering权限
B contosoBBB userB@contosoBBB.partner.onmschina.cn B-RG B-VNet 192.168.0.0/24 用户B有对B-VNet的peering权限

  以上环境,请大家提前准备好。  

  1.在租户B里,我们以用户名:userB@contosoBBB.partner.onmschina.cn,登录Azure Portal。步骤略。

  2.在租户B里,我们点击Azure Active Directory,点击新来宾用户。如下图:

  

  3.在租户B里,把租户A的用户名:userA@contosoAAA.partner.onmschina.cn,设置为来宾用户:

  

  4.设置完毕后,我们可以在租户B里,查看到这个来宾用户(userA@contosoAAA.partner.onmschina.cn)。我们点击该用户名。页面跳转

  

  在跳转的页面中,点击重新发送邀请,

  

  5.请把下图中的邀请URL保存在记事本上,这个步骤非常关键。

  

  

  6.在租户B里,我们选择B-VNet所在资源组,对这个来宾用户(userA@contosoAAA.partner.onmschina.cn)设置RBAC权限,这里我们设置角色为Contributor,步骤略。

  

  上面的操作完毕后,来宾用户(userA@contosoAAA.partner.onmschina.cn)可以同时对2个目录contosoAAA和contosoBBB同时具备权限。

  7.我们新开一个浏览器,把步骤5中的邀请URL地址打开。输入userA@contosoAAA.partner.onmschina.cn这个用户的密码。

  在弹出的审查许可中,选择接受。截图略。

  8.登录完毕后,我们在同一个浏览器里新开一个连接:https://portal.azure.cn/,就可以以用户userA@contosoAAA.partner.onmschina.cn,查看到目录:contosoAAA和contosoBBB

  

  9.我们以用户userA@contosoAAA.partner.onmschina.cn,点击资源组A-RG,点击虚拟网络A-VNet,点击对等互联,点击添加。如下图

  

  10.我们以用户userA@contosoAAA.partner.onmschina.cn,输入Peering的相关信息。

  请注意,我们在远程虚拟网络中,输入目录contosoBBB的虚拟网络B-VNet的资源ID。

  点击身份验证,然后需要再次对目录contosoBB进行身份验证:

  

  11.身份验证完毕后,我们点击添加。就完成了A-VNet (10.0.0.0/24)到B-VNet (192.168.0.0.0/24)之间的Peering

  

  

  如果大家觉得操作比较繁琐,可以用下面的PowerShell

#前提条件:
#执行下面的PowerShell,需要把上面截图部分的的步骤1-6先操作完毕
#即某1个账户可以同时访问2个Tenant,且对2个Tenant下的VNet都具备peering权限

#先登录Azure China环境
Add-AzAccount -Environment AzureChinaCloud

#选择当前用户所在的订阅ID
$subid_a = 'aaaaaaaa'
Select-AzSubscription -SubscriptionId subid_a

#选择设置该目录下的资源组和虚拟网络
$rgname = 'A-RG'
$vnetname = 'A-VNet'
$vnet1 = Get-AzVirtualNetwork -ResourceGroupName $rgname -Name $vnetname

#远端目录下的vnet
$vnet2 = '/subscriptions/bbbbbbbb/resourceGroups/B-RG/providers/Microsoft.Network/virtualNetworks/B-VNet'

#AllowGatewayTransit表示使用本地网关,请按照具体环境配置
Add-AzVirtualNetworkPeering -Name A-to-B -VirtualNetwork $vnet1 -RemoteVirtualNetworkId $vnet2 -AllowGatewayTransit -AllowForwardedTraffic



#再选择另外一个目录下的订阅ID
$subid_b = 'bbbbbbbb'
Select-AzSubscription -SubscriptionId subid_b

#选择设置该目录下的资源组和虚拟网络
$rgname = 'B-RG'
$vnetname = 'B-VNet'
$vnet1 = Get-AzVirtualNetwork -ResourceGroupName $rgname -Name $vnetname

#远端目录下的vnet
$vnet2 = '/subscriptions/aaaaaaaa/resourceGroups/A-RG/providers/Microsoft.Network/virtualNetworks/A-VNet'

#UseRemoteGateways表示使用远程虚拟网络的网关,请按照具体环境配置
Add-AzVirtualNetworkPeering -Name B-toA -VirtualNetwork $vnet1 -RemoteVirtualNetworkId $vnet2 -UseRemoteGateways -AllowForwardedTraffic

  

原文地址:https://www.cnblogs.com/threestone/p/14939257.html