《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 #选择设置该目录下的虚拟网络ID $vnet1 = '/subscriptions/aaaaaaaa/resourceGroups/A-RG/providers/Microsoft.Network/virtualNetworks/A-VNet' #远端目录下的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 #选择设置该目录下的虚拟网络ID $vnet1 = '/subscriptions/bbbbbbbb/resourceGroups/B-RG/providers/Microsoft.Network/virtualNetworks/B-VNet' #远端目录下的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