Freigeben über


Schnellstart: Erstellen eines diensts für private Verknüpfungen mit Azure PowerShell

Führen Sie die ersten Schritte zum Erstellen eines Private Link-Diensts für Ihren Dienst aus. Gewähren Sie für Private Link den Zugriff auf Ihren Dienst oder Ihre Ressource hinter Azure Load Balancer Standard. Benutzer Ihres Diensts verfügen über privaten Zugriff aus ihrem virtuellen Netzwerk.

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

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.

  • 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 "Cloudshell öffnen" in der oberen rechten Ecke eines Codeblocks 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 die Cloud Shell auch innerhalb des Azure-Portals ausführen.

    Sie können auch Azure PowerShell lokal installieren, um die Cmdlets auszuführen. Die Schritte in diesem Artikel erfordern Azure PowerShell-Modulversion 5.4.1 oder höher. 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, geben Sie Connect-AzAccount ein, um eine Verbindung mit 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:

New-AzResourceGroup -Name 'test-rg' -Location 'eastus2'

Erstellen Sie einen internen Lastverteiler

In diesem Abschnitt erstellen Sie ein virtuelles Netzwerk und einen internen Azure Load Balancer.

Virtuelles Netzwerk

In diesem Abschnitt erstellen Sie ein virtuelles Netzwerk und ein Subnetz, um das Lastenausgleichsmodul zu hosten, das auf Ihren Privaten Link-Dienst zugreift.

## Create backend subnet config ##
$subnet = @{
    Name = 'subnet-1'
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create the virtual network ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig
}
$vnet = New-AzVirtualNetwork @net

Standard-Load-Balancer erstellen

In diesem Abschnitt erfahren Sie, wie Sie die folgenden Komponenten des Lastenausgleichs erstellen und konfigurieren:

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

## Create load balancer frontend configuration and place in variable. ##
$lbip = @{
    Name = 'frontend'
    PrivateIpAddress = '10.0.0.4'
    SubnetId = $vnet.subnets[0].Id
}
$feip = New-AzLoadBalancerFrontendIpConfig @lbip

## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'backend-pool'

## Create the health probe and place in variable. ##
$probe = @{
    Name = 'health-probe'
    Protocol = 'http'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
    RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe

## Create the load balancer rule and place in variable. ##
$lbrule = @{
    Name = 'http-rule'
    Protocol = 'tcp'
    FrontendPort = '80'
    BackendPort = '80'
    IdleTimeoutInMinutes = '15'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
}
$rule = New-AzLoadBalancerRuleConfig @lbrule -EnableTcpReset

## Create the load balancer resource. ##
$loadbalancer = @{
    ResourceGroupName = 'test-rg'
    Name = 'load-balancer'
    Location = 'eastus2'
    Sku = 'Standard'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
    LoadBalancingRule = $rule
    Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer

Deaktivieren von Netzwerkrichtlinien

Bevor ein privater Linkdienst im virtuellen Netzwerk erstellt werden kann, muss die Einstellung privateLinkServiceNetworkPolicies deaktiviert werden.

## Place the subnet name into a variable. ##
$subnet = 'subnet-1'

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

## Set the policy as disabled on the virtual network. ##
($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq $subnet}).privateLinkServiceNetworkPolicies = "Disabled"

## Save the configuration changes to the virtual network. ##
$vnet | Set-AzVirtualNetwork

Erstellen Sie in diesem Abschnitt einen privaten Linkdienst, der den im vorherigen Schritt erstellten Standard azure Load Balancer verwendet.

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

## Create the IP configuration for the private link service. ##
$ipsettings = @{
    Name = 'ipconfig-1'
    PrivateIpAddress = '10.0.0.5'
    Subnet = $vnet.subnets[0]
}
$ipconfig = New-AzPrivateLinkServiceIpConfig @ipsettings

## Place the load balancer frontend configuration into a variable. ##
$par = @{
    Name = 'load-balancer'
    ResourceGroupName = 'test-rg'
}
$fe = Get-AzLoadBalancer @par | Get-AzLoadBalancerFrontendIpConfig

## Create the private link service for the load balancer. ##
$privlinksettings = @{
    Name = 'private-link-service'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    LoadBalancerFrontendIpConfiguration = $fe
    IpConfiguration = $ipconfig
}
New-AzPrivateLinkService @privlinksettings

Ihr Private Link-Dienst wird erstellt und kann Datenverkehr empfangen. Konfigurieren Sie Ihre Anwendung hinter Ihrer Instanz von Load Balancer Standard, falls Sie den Datenverkehrsfluss anzeigen möchten.

Erstellen eines privaten Endpunkts

In diesem Abschnitt ordnen Sie den Private Link-Dienst einem privaten Endpunkt zu. Ein virtuelles Netzwerk enthält den privaten Endpunkt für den Private Link-Dienst. In diesem virtuellen Netzwerk sind die Ressourcen enthalten, die auf Ihren Private Link-Dienst zugreifen.

Erstellen eines virtuellen Netzwerks des privaten Endpunkts

## Create backend subnet config ##
$subnet = @{
    Name = 'subnet-pe'
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create the virtual network ##
$net = @{
    Name = 'vnet-pe'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.1.0.0/16'
    Subnet = $subnetConfig
}
$vnetpe = New-AzVirtualNetwork @net

Endpunkt und Verbindung erstellen

## Place the private link service configuration into variable. ##
$par1 = @{
    Name = 'private-link-service'
    ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1

## Create the private link configuration and place in variable. ##
$par2 = @{
    Name = 'connection-1'
    PrivateLinkServiceId = $pls.Id
}
$plsConnection = New-AzPrivateLinkServiceConnection @par2

## Place the virtual network into a variable. ##
$par3 = @{
    Name = 'vnet-pe'
    ResourceGroupName = 'test-rg'
}
$vnetpe = Get-AzVirtualNetwork @par3

## Create private endpoint ##
$par4 = @{
    Name = 'private-endpoint'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnetpe.subnets[0]
    PrivateLinkServiceConnection = $plsConnection
}
New-AzPrivateEndpoint @par4 -ByManualRequest

Genehmigen der Verbindung mit einem privaten Endpunkt

In diesem Abschnitt genehmigen Sie die Verbindung, die Sie in den vorherigen Schritten erstellt haben.

## Place the private link service configuration into variable. ##
$par1 = @{
    Name = 'private-link-service'
    ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1

$par2 = @{
    Name = $pls.PrivateEndpointConnections[0].Name
    ServiceName = 'private-link-service'
    ResourceGroupName = 'test-rg'
    Description = 'Approved'
    PrivateLinkResourceType = 'Microsoft.Network/privateLinkServices'
}
Approve-AzPrivateEndpointConnection @par2

IP-Adresse des privaten Endpunkts

In diesem Abschnitt finden Sie die IP-Adresse des privaten Endpunkts, der dem Lastenausgleichs- und privaten Linkdienst entspricht.

## Get private endpoint and the IP address and place in a variable for display. ##
$par1 = @{
    Name = 'private-endpoint'
    ResourceGroupName = 'test-rg'
    ExpandResource = 'networkinterfaces'
}
$pe = Get-AzPrivateEndpoint @par1

## Display the IP address by expanding the variable. ##
$pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
❯ $pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
10.1.0.4

Bereinigen von Ressourcen

Wenn sie nicht mehr benötigt wird, können Sie den Befehl "Remove-AzResourceGroup " verwenden, um die Ressourcengruppe, den Lastenausgleich und die verbleibenden Ressourcen zu entfernen.

Remove-AzResourceGroup -Name 'test-rg'

Nächste Schritte

In dieser Schnellstartanleitung führen Sie die folgenden Schritte aus:

  • Erstellen eines virtuellen Netzwerks und einer internen Azure Load Balancer-Instanz

  • Erstellt einen privaten Linkdienst

Weitere Informationen zu privaten Azure-Endpunkten finden Sie unter: