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.

Diagram van resources die zijn gemaakt in de quickstart voor privé-eindpunten.

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.

  • 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

  1. 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
    
  2. 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
    
  3. 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.

  1. 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
    
  2. Stel de configuratie in.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. 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
    
  4. 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:

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

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

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

  1. Voer in het zoekvak boven aan de portal virtuele machine in. Selecteer Virtuele machines.

  2. Selecteer vm-1.

  3. Selecteer op de overzichtspagina voor vm-1 Verbinding maken en selecteer vervolgens het tabblad Bastion.

  4. Selecteer Azure Bastion gebruiken.

  5. Voer de gebruikersnaam en het wachtwoord in die u hebt gebruikt bij het maken van de virtuele machine.

  6. Selecteer Verbinding maken.

  7. Nadat u verbinding hebt gemaakt, opent u PowerShell op de server.

  8. 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.

  9. Open de webbrowser in de bastionverbinding met vm-1.

  10. 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:

    Schermopname van de standaardpagina van de web-app in een browser.

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: