《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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2019-06-26 Azure ARM (23) Azure Policy使用
2018-06-26 Azure Application Gateway (5) Application Gateway SSL Offload配置
2012-06-26 Windows Azure Cloud Service (29) 在Windows Azure发送邮件(下)
2012-06-26 Windows Azure Cloud Service (28) 在Windows Azure发送邮件(中)