Quickstart: Een privé-eindpunt maken met behulp van Azure PowerShell
Ga aan de slag met Azure Private Link door een privé-eindpunt te maken en te gebruiken om veilig verbinding te maken met een Azure-app Services-web-app.
In deze quickstart maakt u een privé-eindpunt voor een Azure-app Services-web-app en maakt en implementeert u vervolgens een virtuele machine (VM) om de privéverbinding te testen.
U kunt privé-eindpunten maken voor verschillende Azure-services, zoals Azure SQL en Azure Storage.
Vereisten
Een Azure-account met een actief abonnement. Als u nog geen Azure-account hebt, maakt u gratis een account.
Een Azure-web-app met een PremiumV2-laag of hoger App Service-plan, geïmplementeerd in uw Azure-abonnement.
Zie quickstart: Een ASP.NET Core-web-app maken in Azure voor meer informatie en een voorbeeld.
De voorbeeldweb-app in dit artikel heeft de naam webapp-1. Vervang het voorbeeld door de naam van uw web-app.
Azure Cloud Shell of Azure PowerShell.
Met de stappen in deze quickstart worden de Azure PowerShell-cmdlets interactief uitgevoerd in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u CloudShell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal.
U kunt Azure PowerShell ook lokaal installeren om de cmdlets uit te voeren. Voor de stappen in dit artikel is Azure PowerShell-moduleversie 5.4.1 of hoger vereist. Voer deze opdracht
Get-Module -ListAvailable Az
uit om uw geïnstalleerde versie te vinden. Zie De Azure PowerShell-module bijwerken als u een upgrade moet uitvoeren.Als u PowerShell lokaal uitvoert, voert u deze uit
Connect-AzAccount
om verbinding te maken met Azure.
Een brongroep maken
Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
Maak een resourcegroep met New-AzResourceGroup:
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Een virtueel netwerk maken
Gebruik New-AzVirtualNetwork om een virtueel netwerk met de naam vnet-1 met IP-adresvoorvoegsel 10.0.0.0/16 te maken in de test-rg-resourcegroep en eastus2-locatie.
$vnet = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
Azure implementeert resources in een subnet binnen een virtueel netwerk. Gebruik Add-AzVirtualNetworkSubnetConfig om een subnetconfiguratie met de naam subnet-1 te maken met adresvoorvoegsel 10.0.0.0/24.
$subnet = @{ Name = 'subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Koppel vervolgens de subnetconfiguratie aan het virtuele netwerk met Set-AzVirtualNetwork.
$virtualNetwork | Set-AzVirtualNetwork
Azure Bastion implementeren
Azure Bastion gebruikt uw browser om verbinding te maken met VM's in uw virtuele netwerk via secure shell (SSH) of RDP (Remote Desktop Protocol) met behulp van hun privé-IP-adressen. De VM's hebben geen openbare IP-adressen, clientsoftware of speciale configuratie nodig. Zie Azure Bastion voor meer informatie over Azure Bastion.
Notitie
De prijzen per uur beginnen vanaf het moment dat Bastion wordt geïmplementeerd, ongeacht het uitgaande gegevensgebruik. Zie Prijzen en SKU's voor meer informatie. Als u Bastion implementeert als onderdeel van een zelfstudie of test, raden we u aan deze resource te verwijderen nadat u deze hebt gebruikt.
Configureer een Azure Bastion-subnet voor uw virtuele netwerk. Dit subnet is exclusief gereserveerd voor Azure Bastion-resources en moet de naam AzureBastionSubnet hebben.
$subnet = @{ Name = 'AzureBastionSubnet' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.1.0/26' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Stel de configuratie in.
$virtualNetwork | Set-AzVirtualNetwork
Maak een openbaar IP-adres voor Azure Bastion. De bastionhost gebruikt het openbare IP-adres voor toegang tot Secure Shell (SSH) en REMOTE Desktop Protocol (RDP) via poort 443.
$ip = @{ ResourceGroupName = 'test-rg' Name = 'public-ip' Location = 'eastus2' AllocationMethod = 'Static' Sku = 'Standard' Zone = 1,2,3 } New-AzPublicIpAddress @ip
Gebruik de opdracht New-AzBastion om een nieuwe Standard SKU Azure Bastion-host te maken in het AzureBastionSubnet.
$bastion = @{ Name = 'bastion' ResourceGroupName = 'test-rg' PublicIpAddressRgName = 'test-rg' PublicIpAddressName = 'public-ip' VirtualNetworkRgName = 'test-rg' VirtualNetworkName = 'vnet-1' Sku = 'Basic' } New-AzBastion @bastion
Het duurt enkele minuten voordat de Bastion-resources zijn geïmplementeerd.
Een privé-eindpunt maken
Een Azure-service die ondersteuning biedt voor privé-eindpunten is vereist voor het instellen van het privé-eindpunt en de verbinding met het virtuele netwerk. Voor de voorbeelden in dit artikel gebruiken we een Azure-app Services-web-app op basis van de vereisten. Zie de beschikbaarheid van Azure Private Link voor meer informatie over de Azure-services die ondersteuning bieden voor een privé-eindpunt.
Een privé-eindpunt kan een statisch of dynamisch toegewezen IP-adres hebben.
Belangrijk
U moet een eerder geïmplementeerde Azure-app Services-web-app hebben om door te gaan met de stappen in dit artikel. Zie Vereisten voor meer informatie.
In deze sectie gaat u het volgende doen:
Maak een private link-serviceverbinding met New-AzPrivateLinkServiceConnection.
Maak het privé-eindpunt met New-AzPrivateEndpoint.
Maak eventueel de statische IP-configuratie van het privé-eindpunt met 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
Privé-DNS-zone configureren
Een privé-DNS-zone wordt gebruikt om de DNS-naam van het privé-eindpunt in het virtuele netwerk op te lossen. In dit voorbeeld gebruiken we de DNS-gegevens voor een Azure-app Services-web-app voor meer informatie over de DNS-configuratie van privé-eindpunten. Zie de DNS-configuratie van azure-privé-eindpunten.
In deze sectie gaat u het volgende doen:
Een nieuwe privé-Azure DNS-zone maken met New-AzPrivateDnsZone
Koppel de DNS-zone aan het virtuele netwerk dat u eerder hebt gemaakt met New-AzPrivateDnsVirtualNetworkLink
Een DNS-zoneconfiguratie maken met New-AzPrivateDnsZoneConfig
Een DNS-zonegroep maken met 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
Een virtuele testmachine maken
Als u het statische IP-adres en de functionaliteit van het privé-eindpunt wilt controleren, is een test-VM vereist die is verbonden met uw virtuele netwerk.
In deze sectie gaat u het volgende doen:
Een aanmeldingsreferentie voor de virtuele machine maken met Get-Credential
Een netwerkinterface voor de virtuele machine maken met New-AzNetworkInterface
Een virtuele-machineconfiguratie maken met New-AzVMConfig, Set-AzVMOperatingSystem, Set-AzVMSourceImage en Add-AzVMNetworkInterface
De virtuele machine maken met 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
Notitie
Virtuele machines in een virtueel netwerk met een bastionhost hebben geen openbare IP-adressen nodig. Bastion biedt het openbare IP-adres en de VM's gebruiken privé-IP's om binnen het netwerk te communiceren. U kunt de openbare IP-adressen verwijderen van virtuele machines in gehoste virtuele bastionnetwerken. Zie Een openbaar IP-adres loskoppelen van een Virtuele Azure-machine voor meer informatie.
Notitie
Azure biedt een standaard ip-adres voor uitgaande toegang voor VM's waaraan geen openbaar IP-adres is toegewezen of zich in de back-endpool van een interne Azure-load balancer bevinden. Het standaard ip-mechanisme voor uitgaande toegang biedt een uitgaand IP-adres dat niet kan worden geconfigureerd.
Het standaard IP-adres voor uitgaande toegang is uitgeschakeld wanneer een van de volgende gebeurtenissen plaatsvindt:
- Er wordt een openbaar IP-adres toegewezen aan de VIRTUELE machine.
- De VIRTUELE machine wordt in de back-endpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
- Er wordt een Azure NAT Gateway-resource toegewezen aan het subnet van de VIRTUELE machine.
Virtuele machines die u maakt met behulp van virtuele-machineschaalsets in de flexibele indelingsmodus, hebben geen standaardtoegang voor uitgaand verkeer.
Zie Voor meer informatie over uitgaande verbindingen in Azure standaard uitgaande toegang in Azure en SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen.
Connectiviteit met het privé-eindpunt testen
Gebruik de virtuele machine die u eerder hebt gemaakt om verbinding te maken met de web-app in het privé-eindpunt.
Voer in het zoekvak boven aan de portal virtuele machine in. Selecteer Virtuele machines.
Selecteer vm-1.
Selecteer Verbinding maken op de overzichtspagina voor vm-1 en selecteer vervolgens het tabblad Bastion.
Selecteer Azure Bastion gebruiken.
Voer de gebruikersnaam en het wachtwoord in die u hebt gebruikt bij het maken van de virtuele machine.
Selecteer Verbinding maken.
Nadat u verbinding hebt gemaakt, opent u PowerShell op de server.
Voer
nslookup webapp-1.azurewebsites.net
in. U ontvangt een bericht dat lijkt op het volgende voorbeeld: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
Een privé-IP-adres van 10.0.0.10 wordt geretourneerd voor de naam van de web-app als u in de vorige stappen een statisch IP-adres hebt gekozen. Dit adres bevindt zich in het subnet van het virtuele netwerk dat u eerder hebt gemaakt.
Open de webbrowser in de bastionverbinding met vm-1.
Voer de URL van uw web-app in.
https://webapp-1.azurewebsites.net
Als uw web-app niet is geïmplementeerd, krijgt u de volgende standaardpagina voor web-apps:
Resources opschonen
Wanneer u deze niet meer nodig hebt, kunt u de opdracht Remove-AzResourceGroup gebruiken om de resourcegroep, het virtuele netwerk en de resterende resources te verwijderen.
Remove-AzResourceGroup -Name 'test-rg'
Volgende stappen
Zie voor meer informatie over de services die ondersteuning bieden voor privé-eindpunten: