Szybki start: tworzenie usługi Private Link przy użyciu Azure PowerShell

Rozpocznij tworzenie usługi Private Link, która odwołuje się do twojej usługi. Nadaj Private Link dostęp do usługi lub zasobu wdrożonego za usługa Load Balancer w warstwie Standardowa azure. Użytkownicy usługi mają dostęp prywatny z sieci wirtualnej.

Diagram zasobów utworzonych w prywatnym punkcie końcowym — Szybki start.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.

  • Azure Cloud Shell lub Azure PowerShell.

    Kroki opisane w tym przewodniku Szybki start uruchamiają interaktywne polecenia cmdlet Azure PowerShell w usłudze Azure Cloud Shell. Aby uruchomić polecenia w Cloud Shell, wybierz pozycję Otwórz program Cloudshell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj, aby skopiować kod, a następnie wklej go do Cloud Shell, aby go uruchomić. Możesz również uruchomić Cloud Shell z poziomu Azure Portal.

    Możesz również zainstalować Azure PowerShell lokalnie, aby uruchamiać polecenia cmdlet. Kroki opisane w tym artykule wymagają modułu Azure PowerShell w wersji 5.4.1 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az , aby znaleźć zainstalowaną wersję. Jeśli chcesz uaktualnić, zobacz Aktualizowanie modułu Azure PowerShell.

    Jeśli uruchomisz program PowerShell lokalnie, uruchom polecenie Connect-AzAccount , aby nawiązać połączenie z platformą Azure.

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.

Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup:

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

Utwórz wewnętrzny moduł równoważenia obciążenia.

W tej sekcji utworzysz sieć wirtualną i wewnętrzną Azure Load Balancer.

Sieć wirtualna

W tej sekcji utworzysz sieć wirtualną i podsieć do hostowania modułu równoważenia obciążenia, który uzyskuje dostęp do usługi Private Link.

## 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

Tworzenie modułu równoważenia obciążenia w warstwie Standardowa

W tej sekcji opisano szczegółowo procedurę tworzenia i konfigurowania następujących składników modułu równoważenia obciążenia:

  • Utwórz adres IP frontonu za pomocą polecenia New-AzLoadBalancerFrontendIpConfig dla puli adresów IP frontonu. Ten adres IP odbiera ruch przychodzący w module równoważenia obciążenia

  • Utwórz pulę adresów zaplecza za pomocą polecenia New-AzLoadBalancerBackendAddressPoolConfig dla ruchu wysyłanego z frontonu modułu równoważenia obciążenia. W tej puli są wdrażane maszyny wirtualne zaplecza.

  • Utwórz sondę kondycji za pomocą polecenia Add-AzLoadBalancerProbeConfig , który określa kondycję wystąpień maszyn wirtualnych zaplecza.

  • Utwórz regułę modułu równoważenia obciążenia za pomocą polecenia Add-AzLoadBalancerRuleConfig , która definiuje sposób dystrybucji ruchu do maszyn wirtualnych.

  • Utwórz publiczny moduł równoważenia obciążenia za pomocą polecenia New-AzLoadBalancer.

## 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

Wyłączanie zasad sieciowych

Aby można było utworzyć usługę łącza prywatnego w sieci wirtualnej, należy wyłączyć to ustawienie privateLinkServiceNetworkPolicies .

## 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

W tej sekcji utwórz usługę łącza prywatnego, która korzysta z Azure Load Balancer w warstwie Standardowa utworzonej w poprzednim kroku.

## 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

Usługa łącza prywatnego jest tworzona i może odbierać ruch. Jeśli chcesz zobaczyć przepływy ruchu, skonfiguruj aplikację za standardowym modułem równoważenia obciążenia.

Tworzenie prywatnego punktu końcowego

W tej sekcji zamapujesz usługę łącza prywatnego na prywatny punkt końcowy. Sieć wirtualna zawiera prywatny punkt końcowy dla usługi łącza prywatnego. Ta sieć wirtualna zawiera zasoby, które uzyskują dostęp do usługi łącza prywatnego.

Tworzenie sieci wirtualnej prywatnego punktu końcowego

## 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

Tworzenie punktu końcowego i połączenia

## 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

Zatwierdzanie połączenia prywatnego punktu końcowego

W tej sekcji zatwierdzisz połączenie utworzone w poprzednich krokach.

## 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

Adres IP prywatnego punktu końcowego

W tej sekcji znajdziesz adres IP prywatnego punktu końcowego odpowiadającego usłudze równoważenia obciążenia i usługi łącza prywatnego.

## 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

Czyszczenie zasobów

Gdy grupa zasobów, moduł równoważenia obciążenia i pozostałe zasoby nie będą już potrzebne, możesz użyć polecenia Remove-AzResourceGroup .

Remove-AzResourceGroup -Name 'test-rg'

Następne kroki

W ramach tego przewodnika Szybki start wykonasz następujące czynności:

  • Utworzono sieć wirtualną i wewnętrzną Azure Load Balancer.

  • Utworzono usługę łącza prywatnego

Aby dowiedzieć się więcej na temat prywatnego punktu końcowego platformy Azure, przejdź do: