Démarrage rapide : Créer un point de terminaison privé en utilisant Azure PowerShell

Démarrez avec Azure Private Link en créant et utilisant un point de terminaison privé pour vous connecter en toute sécurité à une application web Azure.

Dans ce guide de démarrage rapide, créez un point de terminaison privé pour une application web Azure App Services, puis créez et déployez une machine virtuelle (VM) pour tester la connexion privée.

Vous pouvez créer des points de terminaison privés pour divers services Azure, tels qu’Azure SQL et Stockage Azure.

Diagramme des ressources créées dans le guide de démarrage rapide d'un point de terminaison privé.

Prérequis

  • Compte Azure avec un abonnement actif. Si vous n’avez pas encore de compte Azure, créez-en un gratuitement.

  • Une application web Azure avec un niveau PremiumV2 ou un plan App Service supérieur déployé dans votre abonnement Azure.

  • Azure Cloud Shell ou Azure PowerShell.

    Les étapes de ce démarrage rapide exécutent les applets de commande Azure PowerShell de manière interactive dans Azure Cloud Shell. Pour exécuter les commandes dans le Cloud Shell, sélectionnez Ouvrir Cloudshell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell pour l’exécuter. Vous pouvez également exécuter le Cloud Shell à partir du Portail Azure.

    Vous pouvez également installer Azure PowerShell localement pour exécuter les applets de commande. Les étapes de cet article nécessitent le module Azure PowerShell version 5.4.1 ou ultérieure. Exécutez Get-Module -ListAvailable Az pour rechercher la version installée. Si vous devez effectuer une mise à niveau, consultez Mise à jour d’Azure PowerShell.

    Si vous exécutez PowerShell localement, exécutez Connect-AzAccount pour vous connecter à Azure.

Créer un groupe de ressources

Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.

Créez un groupe de ressources avec New-AzResourceGroup :

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

Créez un réseau virtuel

  1. Utilisez New-AzVirtualNetwork pour créer un réseau virtuel nommé vnet-1 avec le préfixe d’adresse IP 10.0.0.0/16 dans le groupe de ressources test-rg et l’emplacement eastus2.

    $vnet = @{
        Name = 'vnet-1'
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        AddressPrefix = '10.0.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. Azure déploie des ressources vers un sous-réseau au sein d’un réseau virtuel. Utilisez Add-AzVirtualNetworkSubnetConfig pour créer une configuration de sous-réseau nommée subnet-1 avec un préfixe d’adresse 10.0.0.0/24.

    $subnet = @{
        Name = 'subnet-1'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. Associez ensuite la configuration du sous-réseau au réseau virtuel à l’aide de Set-AzVirtualNetwork.

    $virtualNetwork | Set-AzVirtualNetwork
    

Déployer Azure Bastion

Azure Bastion utilise votre navigateur web pour se connecter aux machines virtuelles de votre réseau virtuel au moyen de SSH (Secure Shell) ou RDP (Remote Desktop Protocol) à l’aide de leurs adresses IP privées. Les machines virtuelles ne requièrent pas d’adresse IP publique, de logiciel client ou de configuration spéciale. Pour plus d’informations sur Azure Bastion, voir Azure Bastion.

Remarque

Le tarif horaire commence à partir du moment où Bastion est déployé, quelle que soit l’utilisation des données sortantes. Pour plus d’informations, consultez Tarifications et Références SKU. Si vous déployez Bastion dans le cadre d’un tutoriel ou d’un test, nous vous recommandons de supprimer cette ressource après l’avoir utilisée.

  1. Configurez le sous-réseau Azure Bastion pour votre réseau virtuel. Ce sous-réseau est exclusivement réservé aux ressources Azure Bastion et doit être nommé AzureBastionSubnet.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Définissez la configuration.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Créez une adresse IP publique pour Azure Bastion. L’hôte bastion utilise l’adresse IP publique pour accéder au protocole SSH(Secure Shell) et au protocole RDP sur le port 443.

    $ip = @{
            ResourceGroupName = 'test-rg'
            Name = 'public-ip'
            Location = 'eastus2'
            AllocationMethod = 'Static'
            Sku = 'Standard'
            Zone = 1,2,3
    }
    New-AzPublicIpAddress @ip
    
  4. Utilisez la commande New-AzBastion pour créer un hôte Azure Bastion de référence SKU Standard dans AzureBastionSubnet.

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

Le déploiement des ressources Bastion prend environ 10 minutes.

Créer un Private Endpoint

Un service Azure qui prend en charge les points de terminaison privés est nécessaire pour configurer le point de terminaison privé et la connexion au réseau virtuel. Pour obtenir les exemples de cet article, nous utilisons une application web Azure à partir des conditions préalables. Pour plus d’informations sur les services Azure qui prennent en charge un point de terminaison privé, consultez Disponibilité d’Azure Private Link.

Un point de terminaison privé peut avoir une adresse IP statique ou affectée dynamiquement.

Important

Vous devez avoir une WebApp Azure App Services précédemment déployée pour procéder aux étapes de cet article. Pour plus d’informations, consultez Prérequis.

Dans cette section, vous allez :

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

Configurer la zone DNS privée

Une zone DNS privée est utilisée pour résoudre le nom DNS du point de terminaison privé dans le réseau virtuel. Pour cet exemple, nous utilisons les informations DNS pour une application web Azure. Pour plus d’informations sur la configuration DNS des points de terminaison privés, consultez Configuration DNS des points de terminaison privés Azure.

Dans cette section, vous allez :

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

Créer une machine virtuelle de test

Pour vérifier l’adresse IP statique et les fonctionnalités du point de terminaison privé, une machine virtuelle de test connectée à votre réseau virtuel est requise.

Dans cette section, vous allez :

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

Notes

Les machines virtuelles d’un réseau virtuel avec un hôte bastion n’ont pas besoin d’adresses IP publiques. Bastion fournit l’adresse IP publique et les machines virtuelles utilisent des adresses IP privées pour communiquer au sein du réseau. Vous pouvez supprimer les adresses IP publiques des machines virtuelles des réseaux virtuels hébergés par bastion. Pour plus d’informations, consultez Dissocier une adresse IP publique d’une machine virtuelle Azure.

Remarque

Azure fournit une adresse IP d’accès sortant par défaut pour les machines virtuelles qui n’ont pas d’adresse IP publique ou qui se trouvent dans le pool de back-ends d’un équilibreur de charge Azure de base interne. Le mécanisme d’adresse IP d’accès sortant par défaut fournit une adresse IP sortante qui n’est pas configurable.

L’adresse IP de l’accès sortant par défaut est désactivée quand l’un des événements suivants se produit :

  • Une adresse IP publique est affectée à la machine virtuelle.
  • La machine virtuelle est placée dans le pool principal d’un équilibreur de charge standard, avec ou sans règles de trafic sortant.
  • Une ressource Azure NAT Gateway est attribuée au sous-réseau de la machine virtuelle.

Les machines virtuelles que vous avez créées, au moyen de groupes de machines virtuelles identiques en mode d’orchestration flexible, n’ont pas d’accès sortant par défaut.

Pour plus d’informations sur les connexions sortantes dans Azure, consultez Accès sortant par défaut dans Azure et Utiliser SNAT (Source Network Address Translation) pour les connexions sortantes.

Tester la connectivité au point de terminaison privé

Utilisez la machine virtuelle que vous avez créée pour vous connecter à l’application web via le point de terminaison privé.

  1. Dans la zone de recherche située en haut du portail, entrez Machine virtuelle. Sélectionnez Machines virtuelles.

  2. Sélectionnez vm-1.

  3. Sur la page de présentation de vm-1, sélectionnez Se connecter, puis l'onglet Bastion.

  4. Sélectionnez Utiliser Bastion.

  5. Entrez le nom d’utilisateur et le mot de passe que vous avez utilisés lors de la création de la machine virtuelle.

  6. Sélectionnez Connecter.

  7. Une fois connecté, ouvrez PowerShell sur le serveur.

  8. Entrez nslookup webapp-1.azurewebsites.net. Vous recevez un message similaire à l'exemple suivant :

    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
    

    Une adresse IP privée de 10.0.0.10 est renvoyée pour le nom de l'application Web si vous avez choisi une adresse IP statique dans les étapes précédentes. Cette adresse se trouve dans le sous-réseau du réseau virtuel que vous avez créé plus tôt.

  9. Dans la connexion de l’hôte bastion à vm-1, ouvrez le navigateur web.

  10. Entrez l’URL de votre application web, https://webapp-1.azurewebsites.net.

    Si votre application Web n'a pas été déployée, vous obtenez la page d'application Web par défaut suivante :

    Capture d’écran de la page d’application web par défaut dans un navigateur.

Nettoyer les ressources

Lorsque vous n'en avez plus besoin, vous pouvez utiliser la commande Remove-AzResourceGroup pour supprimer le groupe de ressources, le réseau virtuel et les ressources restantes.

Remove-AzResourceGroup -Name 'test-rg'

Étapes suivantes

Pour plus d’informations sur les services qui prennent en charge les points de terminaison privés, consultez :