Schnellstart: Erstellen eines privaten Endpunkts mit Azure PowerShell

Beginnen Sie mit Azure Private Link, indem Sie einen privaten Endpunkt erstellen und verwenden, um eine sichere Verbindung mit einer Azure App Service-Web-App herzustellen.

In dieser Schnellstartanleitung erstellen Sie einen privaten Endpunkt für eine Azure App Service-Web-App. Anschließend erstellen Sie einen virtuellen Computer (VM) und stellen ihn bereit, um die private Verbindung zu testen.

Sie können private Endpunkte für verschiedene Azure-Dienste erstellen, z. B. für Azure SQL und Azure Storage.

Diagramm: Ressourcen, die im Schnellstart „Privater Endpunkt“ erstellt wurden

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie noch nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto.

  • Eine Azure-Web-App mit einem App Service-Plan vom Typ PremiumV2-Tarif oder höher, die in Ihrem Azure-Abonnement bereitgestellt wird

  • Azure Cloud Shell oder Azure PowerShell.

    Die Schritte in dieser Schnellstartanleitung führen die Azure PowerShell Cmdlets interaktiv in Azure Cloud Shell aus. Um die Befehle in der Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.

    Sie können Azure PowerShell auch lokal installieren, um die Cmdlets auszuführen. Für die Beispiele in diesem Artikel muss Version 5.4.1 oder höher des Azure PowerShell-Moduls verwendet werden. Führen Sie Get-Module -ListAvailable Az aus, um die installierte Version zu ermitteln. Sollte ein Upgrade erforderlich sein, lesen Sie Aktualisieren des Azure PowerShell-Moduls.

    Wenn Sie PowerShell lokal ausführen, führen sie Connect-AzAccount aus, um eine Verbindung zu Azure herzustellen.

Erstellen einer Ressourcengruppe

Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie mit New-AzResourceGroup eine Ressourcengruppe:

$rg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rg

Erstellen eines virtuellen Netzwerks

  1. Verwenden Sie New-AzVirtualNetwork, um ein virtuelles Netzwerk mit dem Namen vnet-1 und dem IP-Adresspräfix 10.0.0.0/16 in der Ressourcengruppe test-rg am Speicherort eastus2 zu erstellen.

    $vnet = @{
        Name = 'vnet-1'
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        AddressPrefix = '10.0.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. Azure stellt Ressourcen in einem Subnetz innerhalb eines virtuellen Netzwerks bereit. Erstellen Sie mit Add-AzVirtualNetworkSubnetConfig eine Subnetzkonfiguration namens subnet-1 mit dem Adresspräfix 10.0.0.0/24.

    $subnet = @{
        Name = 'subnet-1'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. Schreiben Sie mit Set-AzVirtualNetwork die Subnetzkonfiguration in das virtuelle Netzwerk.

    $virtualNetwork | Set-AzVirtualNetwork
    

Bereitstellen von Azure Bastion

Azure Bastion verwendet Ihren Browser, um mithilfe ihrer privaten IP-Adressen eine Verbindung mit VMs in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die VMs benötigen keine öffentlichen IP-Adressen, keine Clientsoftware und keine spezielle Konfiguration. Weitere Informationen zu Azure Bastion finden Sie unter Azure Bastion.

Hinweis

Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion als Teil eines Tutorials oder Tests bereitstellen, empfehlen wir Ihnen, diese Ressource zu löschen, nachdem Sie diese verwendet haben.

  1. Konfigurieren Sie ein Azure Bastion-Subnetz für Ihr virtuelles Netzwerk. Dieses Subnetz ist ausschließlich für Azure Bastion-Ressourcen reserviert und muss den Namen AzureBastionSubnet haben.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Legen Sie die Konfiguration fest.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Erstellen Sie eine öffentliche IP-Adresse für Azure Bastion. Der Bastionhost verwendet die öffentliche IP-Adresse, um über Port 443 auf Secure Shell (SSH) und das Remotedesktopprotokoll (RDP) zuzugreifen.

    $ip = @{
            ResourceGroupName = 'test-rg'
            Name = 'public-ip'
            Location = 'eastus2'
            AllocationMethod = 'Static'
            Sku = 'Standard'
            Zone = 1,2,3
    }
    New-AzPublicIpAddress @ip
    
  4. Verwenden Sie den Befehl New-AzBastion, um einen neuen Standard SKU Azure Bastion-Host im AzureBastionSubnet zu erstellen.

    $bastion = @{
        Name = 'bastion'
        ResourceGroupName = 'test-rg'
        PublicIpAddressRgName = 'test-rg'
        PublicIpAddressName = 'public-ip'
        VirtualNetworkRgName = 'test-rg'
        VirtualNetworkName = 'vnet-1'
        Sku = 'Basic'
    }
    New-AzBastion @bastion
    

Die Bereitstellung der Bastion-Ressourcen dauert etwa einige Minuten.

Erstellen eines privaten Endpunkts

Um den privaten Endpunkt und die Verbindung mit dem virtuellen Netzwerk einzurichten, ist ein Azure-Dienst erforderlich, der private Endpunkte unterstützt. Für die Beispiele in diesem Artikel verwenden wir eine Azure App Service-Web-App aus den Voraussetzungen. Weitere Informationen zu den Azure-Diensten, die einen privaten Endpunkt unterstützen, finden Sie im Artikel zur Verfügbarkeit von Azure Private Link.

Ein privater Endpunkt kann über eine statische oder dynamisch zugewiesene IP-Adresse verfügen.

Wichtig

Sie benötigen eine bereits bereitgestellte Azure App Service-Web-App, um mit den Schritten in diesem Artikel fortfahren zu können. Weitere Informationen finden Sie unter Voraussetzungen.

Inhalt dieses Abschnitts:

## Place the previously created webapp into a variable. ##
$webapp = Get-AzWebApp -ResourceGroupName test-rg -Name webapp-1

## Create the private endpoint connection. ## 
$pec = @{
    Name = 'connection-1'
    PrivateLinkServiceId = $webapp.ID
    GroupID = 'sites'
}
$privateEndpointConnection = New-AzPrivateLinkServiceConnection @pec

## Place the virtual network you created previously into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'

## Create the private endpoint. ##
$pe = @{
    ResourceGroupName = 'test-rg'
    Name = 'private-endpoint'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
    PrivateLinkServiceConnection = $privateEndpointConnection
}
New-AzPrivateEndpoint @pe

Konfigurieren der privaten DNS-Zone

Zum Auflösen des DNS-Namen des privaten Endpunkts im virtuellen Netzwerk wird eine private DNS-Zone verwendet. In diesem Beispiel verwenden wir die DNS-Informationen für eine Azure App Service-Web-App. Weitere Informationen zur DNS-Konfiguration privater Endpunkte finden Sie unter DNS-Konfiguration für private Azure-Endpunkte.

Inhalt dieses Abschnitts:

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'

## Create the private DNS zone. ##
$zn = @{
    ResourceGroupName = 'test-rg'
    Name = 'privatelink.azurewebsites.net'
}
$zone = New-AzPrivateDnsZone @zn

## Create a DNS network link. ##
$lk = @{
    ResourceGroupName = 'test-rg'
    ZoneName = 'privatelink.azurewebsites.net'
    Name = 'dns-link'
    VirtualNetworkId = $vnet.Id
}
$link = New-AzPrivateDnsVirtualNetworkLink @lk

## Configure the DNS zone. ##
$cg = @{
    Name = 'privatelink.azurewebsites.net'
    PrivateDnsZoneId = $zone.ResourceId
}
$config = New-AzPrivateDnsZoneConfig @cg

## Create the DNS zone group. ##
$zg = @{
    ResourceGroupName = 'test-rg'
    PrivateEndpointName = 'private-endpoint'
    Name = 'zone-group'
    PrivateDnsZoneConfig = $config
}
New-AzPrivateDnsZoneGroup @zg

Erstellen eines virtuellen Testcomputers

Um die statische IP-Adresse und die Funktionalität des privaten Endpunkts zu überprüfen, wird ein virtueller Testcomputer benötigt, der mit Ihrem virtuellen Netzwerk verbunden ist.

Inhalt dieses Abschnitts:

## Create the credential for the virtual machine. Enter a username and password at the prompt. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name vnet-1 -ResourceGroupName test-rg

## Create a network interface for the virtual machine. ##
$nic = @{
    Name = 'nic-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create the configuration for the virtual machine. ##
$vm1 = @{
    VMName = 'vm-1'
    VMSize = 'Standard_DS1_v2'
}
$vm2 = @{
    ComputerName = 'vm-1'
    Credential = $cred
}
$vm3 = @{
    PublisherName = 'MicrosoftWindowsServer'
    Offer = 'WindowsServer'
    Skus = '2022-Datacenter'
    Version = 'latest'
}
$vmConfig = 
New-AzVMConfig @vm1 | Set-AzVMOperatingSystem -Windows @vm2 | Set-AzVMSourceImage @vm3 | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine. ##
New-AzVM -ResourceGroupName 'test-rg' -Location 'eastus2' -VM $vmConfig

Hinweis

VMs in einem virtuellen Netzwerk mit einem Bastionhost benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP-Adresse bereit und die VMs verwenden private IP-Adressen für die Kommunikation innerhalb des Netzwerks. Sie können die öffentlichen IP-Adressen von allen VMs in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen einer öffentlichen IP-Adresse von einer Azure-VM.

Hinweis

Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.

Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:

  • Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
  • Die VM wird im Backendpool eines Standardlastenausgleichs platziert (mit oder ohne Ausgangsregeln).
  • Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.

VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.

Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.

Testen der Verbindung mit dem privaten Endpunkt

Verwenden Sie den zuvor erstellten virtuellen Computer, um über den privaten Endpunkt eine Verbindung mit der Web-App herzustellen.

  1. Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtueller Computer ein. Wählen Sie Virtuelle Computer aus.

  2. Wählen Sie vm-1 aus.

  3. Wählen Sie auf der Übersichtsseite von vm-1 die Option Verbinden und dann die Registerkarte Bastion aus.

  4. Klicken Sie auf Bastion verwenden.

  5. Geben Sie den Benutzernamen und das Kennwort an, die Sie beim Erstellen des virtuellen Computers verwendet haben.

  6. Wählen Sie Verbinden.

  7. Nachdem Sie die Verbindung hergestellt haben, öffnen Sie PowerShell auf dem Server.

  8. Geben Sie nslookup webapp-1.azurewebsites.net ein. Sie erhalten etwa folgende Meldung:

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    webapp-1.privatelink.azurewebsites.net
    Address:  10.0.0.10
    Aliases:  webapp-1.azurewebsites.net
    

    Für den Namen der Web-App wird die private IP-Adresse 10.0.0.10 zurückgegeben, wenn Sie in den vorherigen Schritten die Zuweisung von statischen IP-Adressen ausgewählt haben. Diese Adresse befindet sich in dem Subnetz des virtuellen Netzwerks, das Sie zuvor erstellt haben.

  9. Öffnen Sie in der Bastionverbindung mit vm-1 den Webbrowser.

  10. Geben Sie die URL, https://webapp-1.azurewebsites.net, der Web-App ein.

    Wenn Ihre Web-App nicht bereitgestellt wurde, wird die folgende Standardseite einer Web-App angezeigt:

    Screenshot: Standardseite der Web-App in einem Browser

Bereinigen von Ressourcen

Wenn Sie die Ressourcen nicht mehr benötigen, führen Sie den Befehl Remove-AzResourceGroup aus, um die Ressourcengruppe, das virtuelle Netzwerk und alle übrigen Ressourcen zu löschen.

Remove-AzResourceGroup -Name 'test-rg'

Nächste Schritte

Weitere Informationen zu den Diensten, die private Endpunkte unterstützen, finden Sie unter: