Azure: Tenant-übergreifendes VNet-Peering

Peerings zwischen virtuellen Netzwerken in Azure sind eine tolle Sache: Einfach zu konfigurieren, schnell bereitgestellt und die Performance ist ebenfalls klasse!

Zum Verbinden von virtuellen Netzwerken aus verschiedenen Azure Active Directory Tenants, wie es beispielsweise in Unternehmensgruppen der Fall ist, mussten bis vor Kurzem noch VPN-Gateways bereitgestellt werden.

Jetzt ist es möglich VNet-Peerings Tenant-übergreifend zu erstellen, derzeit allerdings nur über Azure CLI, PowerShell oder als ARM-Template.

Ich zeige Euch die PowerShell Variante.

Als Voraussetzung benötigt Ihr einen Azure AD-Benutzer, welcher sowohl in Tenant A als auch Tenant B (dann als Gast) die Berechtigung “Network Contributor” auf das jeweilige virtuelle Netzwerk hat, um das VNet “auf der anderen Seite” auslesen und das Peering erstellen zu können.

 

Ist das gegeben, kann es losgehen. Folgendes Skript erledigt alles nötige für Euch, wenn Ihr die Variablen korrekt befüllt:

#declare variables
$subscriptionTenantA = "subscriptionID"
$vNetTenantA = "vNet"
$vnetResourceGroupTenantA = "vNetResourceGroup"
$peerAtoBname = "TenantA-TenantB-Peer01"
$subscriptionTenantB = "subscriptionID"
$vNetTenantB = "vNet"
$vnetResourceGroupTenantB = "vNetResourceGroup"
$peerBtoAname = "TenantB-TenantA-Peer01"

#connect to AzureRM
Connect-AzAccount

#select subscription in Tenant A
Select-AzSubscription -Subscription $subscriptionTenantA

#peer vnet in tenant A to vnet in tenant B
$vNet = Get-AzVirtualNetwork -Name $vNetTenantA -ResourceGroupName $vnetResourceGroupTenantA
Add-AzVirtualNetworkPeering -Name $peerAtoBname -VirtualNetwork $vNet -RemoteVirtualNetworkId "/subscriptions/$subscriptionTenantB/resourceGroups/$vnetResourceGroupTenantB/providers/Microsoft.Network/virtualNetworks/$vNetTenantB"

#select subscription in Tenant B
Select-AzSubscription -Subscription $subscriptionTenantB

#peer vnet in tenant B to vnet in tenant A
$vNet = Get-AzVirtualNetwork -Name $vNetTenantB -ResourceGroupName $vnetResourceGroupTenantB
Add-AzVirtualNetworkPeering -Name $peerBtoAname -VirtualNetwork $vNet -RemoteVirtualNetworkId "/subscriptions/$subscriptionTenantA/resourceGroups/$vnetResourceGroupTenantA/providers/Microsoft.Network/virtualNetworks/$vNetTenantA"

Läuft, oder? 😉

 

Der Vollständigkeit halber noch folgender Hinweis zum Schluss:

Die Optionen “Allow gateway transit” und “Use remote gateway” stehen nur zur Verfügung, wenn sich die virtuellen Netzwerke in der selben Azure Region befinden. Bei einer Verbindung bspw. zwischen Westeuropa und Frankreich-Mitte funktioniert das derzeit leider noch nicht.

2 Gedanken zu „Azure: Tenant-übergreifendes VNet-Peering

  • Hannes Kießling
    22. Oktober 2020 um 15:24 Uhr

    Hallo!

    Ich habe das so gemacht was du geschrieben hast. Das Powershell läuft aber leider nicht. Ich kann zwei Subnetze nicht verbinden aber Vnets gehen ja?
    Muss die VM mit in den zweiten Tenant kopiert werden? Wenn ja, wie macht man das?

    Danke für die Tipps!

    -Hannes

    • Sandro
      30. Oktober 2020 um 09:51 Uhr

      Hallo Hannes, vielen Dank für Deinen Kommentar.
      Das Peering findet immer auf Basis von VNets statt. Nur 2 Subnetze kannst Du nicht verbinden. Es werden immer die VNets miteinander verbunden und dann entsprechend mit Routing oder Netzwerksicherheitsgruppen die Kommunikation zwischen den Subnetzen erlaubt/verboten.
      Die VM muss nicht mit in das zweite Tenant kopiert werden, das Problem löst ja das tenant-übergreifende Peering.

      Ich habe das Script nun nochmal an das neue AZ-Module angepasst. Funktioniert es damit für Dich?

      Viele Grüße
      Sandro

Kommentare sind geschlossen.