在多个 AD 中具有多个订阅的 Azure VNet 对等互连。可能的?

Posted

技术标签:

【中文标题】在多个 AD 中具有多个订阅的 Azure VNet 对等互连。可能的?【英文标题】:Azure VNet Peering with multiple subscription in mutiple AD. Possible? 【发布时间】:2017-02-02 03:40:52 【问题描述】:

我和我的同事拥有 Azure 帐户(使用 BizSpark 计划)。我们都在每个中创建了 VNet 和一些 VM。现在,他想要访问我创建的一些虚拟机,因此我们尝试在这些帐户之间设置 VNet 对等互连。有可能这样做吗?

PS:我们尝试了 VNet 对等互连选项,因为 *** 成本高。

更多信息:

没有重叠的 IP 范围。 所有 VM 都位于同一区域(美国中南部)。 订阅有不同的租户 ID

PPS:更多信息请关注 the tutorial

我有两个订阅:

Sub1: 订阅名称:Visual Studio 企业版:BizSpark 订阅号:79409421-0edc-40c5-a55b-4ef3ccfb0d53 租户 ID:b726dcac-a1f2-420b-8713-cbee132aa6cc 用户登录 ID:aaaa@example.com VNet 名称:vnet1 资源组:newRG

Sub2:

订阅名称:Visual Studio Enterprise:BizSpark 订阅 ID:3a97ecb8-5b69-4f7b-a46b-a678eb05ae00 租户 ID:88cc20a7-90cf-4854-9201-6f1424ebf7fa 用户登录 ID:bbbb@example.com VNet 名称:vnet2 资源组:newRG

我打开了两个Powershell窗口,运行命令如下

Window1(用于 Sub 1):

Login-AzureRmAccount ( logged in with aaaa@example.com )  
 Get-AzureRmSubscription  
 Select-AzureRmSubscription -SubscriptionId "79409421-0edc-40c5-a55b-4ef3ccfb0d53"  

 New-AzureRmRoleAssignment -SignInName "bbbb@example.com" -RoleDefinitionName "Network Contributor" -Scope /subscriptions/79409421-0edc-40c5-a55b-4ef3ccfb0d53/resourceGroups/newRG/providers/Microsoft.Network/VirtualNetworks/vnet2  

当我运行上面的命令时,我得到的错误是

 New-AzureRmRoleAssignment : The provided information does not map to an AD object id.
 At line:1 char:1
 + New-AzureRmRoleAssignment -SignInName "bbbb@example.com" -RoleDefi ...
 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureRmRoleAssignment], KeyNotFoundException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureRoleAssignmentCommand

然后当我运行命令时

 $vnet1 = Get-AzureRmVirtualNetwork -ResourceGroupName newRG -Name vnet1

 Add-AzureRmVirtualNetworkPeering -name LinkTovnet2 -VirtualNetwork $vnet1 -RemoteVirtualNetworkId "/subscriptions/3a97ecb8-5b69-4f7b-a46b-a678eb05ae00/resourceGroups/newRG/providers/Microsoft.Network/virtualNetworks/vnet2" -BlockVirtualNetworkAccess

错误是

 Add-AzureRmVirtualNetworkPeering : The client has permission to perform action 'Microsoft.Network/virtualNetworks/peer/action' on scope     '/subscriptions/79409421-0edc-40c5-a55b-4ef3ccfb0d53/resourceGroups/newRG/providers/Microsoft.Network/virtualNetworks/vnet1/virtualNetworkPeerings/LinkTovnet2', however the linked subscription '3a97ecb8-5b69-4f7b-a46b-a678eb05ae00'is not in current tenant 'b726dcac-a1f2-420b-8713-cbee132aa6cc'.
 StatusCode: 403
 ReasonPhrase: Forbidden
 OperationID : 'a2e1807b-df0d-4ef5-b832-a166a781bfbe'
 At line:1 char:1
 + Add-AzureRmVirtualNetworkPeering -name LinkTovnet2 -VirtualNet ...
 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Add-AzureRmVirtualNetworkPeering], NetworkCloudException
    + FullyQualifiedErrorId :  Microsoft.Azure.Commands.Network.AddAzureVirtualNetworkPeeringCommand

Window2(用于 Sub 2):

 Login-AzureRmAccount( logged in with bbbb@example.com )
 Get-AzureRmSubscription
 Select-AzureRmSubscription -SubscriptionId "79409421-0edc-40c5-a55b-4ef3ccfb0d53"

 New-AzureRmRoleAssignment -SignInName "aaaa@example.com" - RoleDefinitionName "Network Contributor" -Scope /subscriptions/3a97ecb8-5b69-4f7b-a46b-a678eb05ae00/resourceGroups/newRG/providers/Microsoft.Network/VirtualNetworks/vnet1

当我运行上述命令时,得到与上述相同的错误

【问题讨论】:

【参考方案1】:

是的,“只要两个订阅的特权用户授权对等互连并且订阅关联到同一个 Active Directory 租户,就可以在两个不同订阅的虚拟网络之间建立对等互连。”

我在下面链接到的页面上还有一些其他警告,例如。你不能有重叠的 IP 地址范围。

见Azure vnet peering

【讨论】:

我按照本教程进行操作,但最终遇到了权限问题。我认为两个订阅都有不同的租户 ID。有没有办法让这两个订阅同一个租户。 @russell-young,更新了问题。 那么您是否将相同的目录租户添加到两个订阅?完成后,当您使用 select-azurermsubscription 时,也可以使用 -tenantid 参数来选择正确的租户 怎么做? 进入经典门户,Active Directory,点击添加,然后选择“现有目录”,然后按照提示操作,您需要拥有一个您要添加的目录的全局管理员 ID .

以上是关于在多个 AD 中具有多个订阅的 Azure VNet 对等互连。可能的?的主要内容,如果未能解决你的问题,请参考以下文章

我们是不是需要维护每个订阅将具有唯一的 EventType 或者多个订阅可以在 Azure EventGrid 域中具有相同的 EventType

具有不同 Azure 总线订阅的多个后台工作人员

Terraform - 部署到多个 Azure 订阅

AZure账号-订阅-租户

如何在 Azure Pipelines Yaml 上循环多个 Azure 订阅?

Azure 订阅和服务限制配额和约束