Snabbstart: Skapa en privat slutpunkt med hjälp av Azure PowerShell

Kom igång med Azure Private Link genom att skapa och använda en privat slutpunkt för att ansluta säkert till en Azure App Services-webbapp.

I den här snabbstarten skapar du en privat slutpunkt för en Azure App Services-webbapp och skapar och distribuerar sedan en virtuell dator (VM) för att testa den privata anslutningen.

Du kan skapa privata slutpunkter för olika Azure-tjänster, till exempel Azure SQL och Azure Storage.

Diagram över resurser som skapats i snabbstarten för privat slutpunkt.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Om du inte redan har ett Azure-konto skapar du ett konto kostnadsfritt.

  • En Azure-webbapp med en PremiumV2-nivå eller en högre App Service-plan som distribueras i din Azure-prenumeration.

  • Azure Cloud Shell eller Azure PowerShell.

    Stegen i den här snabbstarten kör Azure PowerShell-cmdletarna interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloudshell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra sedan in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell från Azure-portalen.

    Du kan också installera Azure PowerShell lokalt för att köra cmdletarna. Stegen i den här artikeln kräver Azure PowerShell-modulversion 5.4.1 eller senare. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Uppdatera Azure PowerShell-modulen.

    Om du kör PowerShell lokalt kör du Connect-AzAccount för att ansluta till Azure.

Skapa en resursgrupp

En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.

Skapa en resursgrupp med New-AzResourceGroup:

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

Skapa ett virtuellt nätverk

  1. Använd New-AzVirtualNetwork för att skapa ett virtuellt nätverk med namnet vnet-1 med IP-adressprefixet 10.0.0.0/16 i resursgruppen test-rg och platsen eastus2 .

    $vnet = @{
        Name = 'vnet-1'
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        AddressPrefix = '10.0.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. Azure distribuerar resurser till ett undernät i ett virtuellt nätverk. Använd Add-AzVirtualNetworkSubnetConfig för att skapa en undernätskonfiguration med namnet subnet-1 med adressprefixet 10.0.0.0/24.

    $subnet = @{
        Name = 'subnet-1'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. Associera sedan undernätskonfigurationen till det virtuella nätverket med Set-AzVirtualNetwork.

    $virtualNetwork | Set-AzVirtualNetwork
    

Distribuera Azure Bastion

Azure Bastion använder webbläsaren för att ansluta till virtuella datorer i ditt virtuella nätverk via SSH (Secure Shell) eller RDP (Remote Desktop Protocol) med hjälp av sina privata IP-adresser. De virtuella datorerna behöver inte offentliga IP-adresser, klientprogramvara eller särskild konfiguration. Mer information om Azure Bastion finns i Azure Bastion.

Kommentar

Priserna per timme börjar från det ögonblick då Bastion distribueras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du distribuerar Bastion som en del av en självstudie eller ett test rekommenderar vi att du tar bort den här resursen när du har använt den.

  1. Konfigurera ett Azure Bastion-undernät för ditt virtuella nätverk. Det här undernätet är endast reserverat för Azure Bastion-resurser och måste ha namnet AzureBastionSubnet.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Ange konfigurationen.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Skapa en offentlig IP-adress för Azure Bastion. Bastion-värden använder den offentliga IP-adressen för att komma åt SSH (Secure Shell) och RDP (Remote Desktop Protocol) via port 443.

    $ip = @{
            ResourceGroupName = 'test-rg'
            Name = 'public-ip'
            Location = 'eastus2'
            AllocationMethod = 'Static'
            Sku = 'Standard'
            Zone = 1,2,3
    }
    New-AzPublicIpAddress @ip
    
  4. Använd kommandot New-AzBastion för att skapa en ny Standard SKU Azure Bastion-värd i AzureBastionSubnet.

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

Det tar flera minuter för Bastion-resurserna att distribueras.

Skapa en privat slutpunkt

En Azure-tjänst som stöder privata slutpunkter krävs för att konfigurera den privata slutpunkten och anslutningen till det virtuella nätverket. För exemplen i den här artikeln använder vi en Azure App Services WebApp från förutsättningarna. Mer information om De Azure-tjänster som stöder en privat slutpunkt finns i Tillgänglighet för Azure Private Link.

En privat slutpunkt kan ha en statisk eller dynamiskt tilldelad IP-adress.

Viktigt!

Du måste ha en tidigare distribuerad Azure App Services WebApp för att kunna fortsätta med stegen i den här artikeln. Mer information finns i Förutsättningar.

I det här avsnittet ska du:

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

Konfigurera den privata DNS-zonen

En privat DNS-zon används för att matcha DNS-namnet på den privata slutpunkten i det virtuella nätverket. I det här exemplet använder vi DNS-informationen för en Azure App Services-webbapp. Mer information om DNS-konfigurationen av privata slutpunkter finns i DNS-konfiguration för privata Slutpunkter i Azure.

I det här avsnittet ska du:

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

Skapa en virtuell testdator

För att verifiera den statiska IP-adressen och funktionen för den privata slutpunkten krävs en virtuell testdator som är ansluten till det virtuella nätverket.

I det här avsnittet ska du:

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

Kommentar

Virtuella datorer i ett virtuellt nätverk med en skyddsvärd behöver inte offentliga IP-adresser. Bastion tillhandahåller den offentliga IP-adressen och de virtuella datorerna använder privata IP-adresser för att kommunicera i nätverket. Du kan ta bort de offentliga IP-adresserna från alla virtuella datorer i bastionens värdbaserade virtuella nätverk. Mer information finns i Koppla bort en offentlig IP-adress från en virtuell Azure-dator.

Kommentar

Azure tillhandahåller en standard-IP för utgående åtkomst för virtuella datorer som antingen inte har tilldelats någon offentlig IP-adress eller som finns i serverdelspoolen för en intern grundläggande Azure-lastbalanserare. Ip-mekanismen för utgående åtkomst har en utgående IP-adress som inte kan konfigureras.

Standard-IP för utgående åtkomst inaktiveras när någon av följande händelser inträffar:

  • En offentlig IP-adress tilldelas till den virtuella datorn.
  • Den virtuella datorn placeras i serverdelspoolen för en standardlastbalanserare, med eller utan regler för utgående trafik.
  • En Azure NAT Gateway-resurs tilldelas till den virtuella datorns undernät.

Virtuella datorer som du skapar med hjälp av vm-skalningsuppsättningar i flexibelt orkestreringsläge har inte standardåtkomst till utgående trafik.

Mer information om utgående anslutningar i Azure finns i Standardutgående åtkomst i Azure och Använda SNAT (Source Network Address Translation) för utgående anslutningar.

Testa anslutningen till den privata slutpunkten

Använd den virtuella dator som du skapade tidigare för att ansluta till webbappen över den privata slutpunkten.

  1. I sökrutan överst i portalen anger du Virtuell dator. Välj Virtuella datorer.

  2. Välj vm-1.

  3. På översiktssidan för vm-1 väljer du Anslut och sedan fliken Bastion.

  4. Välj Använd Bastion.

  5. Ange det användarnamn och lösenord som du använde när du skapade den virtuella datorn.

  6. Välj Anslut.

  7. När du har anslutit öppnar du PowerShell på servern.

  8. Ange nslookup webapp-1.azurewebsites.net. Du får ett meddelande som liknar följande exempel:

    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
    

    En privat IP-adress på 10.0.0.10 returneras för webbappens namn om du valde statisk IP-adress i föregående steg. Den här adressen finns i undernätet för det virtuella nätverk som du skapade tidigare.

  9. Öppna webbläsaren i bastion-anslutningen till vm-1.

  10. Ange URL:en för din webbapp, https://webapp-1.azurewebsites.net.

    Om webbappen inte har distribuerats får du följande standardwebbappsida:

    Skärmbild av standardwebbappsidan i en webbläsare.

Rensa resurser

När det inte längre behövs kan du använda kommandot Remove-AzResourceGroup för att ta bort resursgruppen, det virtuella nätverket och de återstående resurserna.

Remove-AzResourceGroup -Name 'test-rg'

Nästa steg

Mer information om de tjänster som stöder privata slutpunkter finns i: