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.
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.
Mer information och ett exempel finns i Snabbstart: Skapa en ASP.NET Core-webbapp i Azure.
Exempelwebbappen i den här artikeln heter webapp-1. Ersätt exemplet med webbappens namn.
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
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
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
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.
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
Ange konfigurationen.
$virtualNetwork | Set-AzVirtualNetwork
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
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:
Skapa en privat länktjänstanslutning med New-AzPrivateLinkServiceConnection.
Skapa den privata slutpunkten med New-AzPrivateEndpoint.
Du kan också skapa den statiska IP-konfigurationen för den privata slutpunkten med New-AzPrivateEndpointIpConfiguration.
## 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:
Skapa en ny privat Azure DNS-zon med New-AzPrivateDnsZone
Länka DNS-zonen till det virtuella nätverk som du skapade tidigare med New-AzPrivateDnsVirtualNetworkLink
Skapa en DNS-zonkonfiguration med New-AzPrivateDnsZoneConfig
Skapa en DNS-zongrupp med New-AzPrivateDnsZoneGroup
## 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:
Skapa en inloggningsautentiseringsuppgift för den virtuella datorn med Get-Credential
Skapa ett nätverksgränssnitt för den virtuella datorn med New-AzNetworkInterface
Skapa en konfiguration av en virtuell dator med New-AzVMConfig, Set-AzVMOperatingSystem, Set-AzVMSourceImage och Add-AzVMNetworkInterface
Skapa den virtuella datorn med New-AzVM
## 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.
I sökrutan överst i portalen anger du Virtuell dator. Välj Virtuella datorer.
Välj vm-1.
På översiktssidan för vm-1 väljer du Anslut och sedan fliken Bastion .
Välj Använd Bastion.
Ange det användarnamn och lösenord som du använde när du skapade den virtuella datorn.
Välj Anslut.
När du har anslutit öppnar du PowerShell på servern.
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.
Öppna webbläsaren i bastion-anslutningen till vm-1.
Ange URL:en för din webbapp,
https://webapp-1.azurewebsites.net
.Om webbappen inte har distribuerats får du följande standardwebbappsida:
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: