Démarrage rapide : Créer une passerelle NAT avec Azure PowerShell

Dans ce démarrage rapide, découvrez la création d’une passerelle NAT en tirant parti de PowerShell. Le service NAT Gateway fournit une connectivité sortante pour des machines virtuelles dans Azure.

Diagrammes de ressources créées dans un démarrage rapide relatif à une passerelle NAT.

Prérequis

  • Compte Azure avec un abonnement actif. Créez un compte gratuitement.

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

Créer un groupe de ressources

Créez un groupe de ressources avec New-AzResourceGroup. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.

L’exemple suivant crée un groupe de ressources nommé test-rg à l’emplacement eastus2 :

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

Créer la passerelle NAT

Dans cette section, nous créons la passerelle NAT et les ressources de prise en charge.

  • Pour accéder à l’Internet, vous avez besoin d’une ou de plusieurs adresses IP publiques pour la passerelle NAT. Utilisez la commande New-AzPublicIpAddress pour créer une ressource d’adresse IP publique nommée public-ip-nat dans test-rg.

  • Créez une passerelle NAT Azure globale avec New-AzNatGateway. Le résultat de cette commande aboutit à la création d’une ressource de passerelle nommée nat-gateway qui utilise l’adresse IP publique public-ip-nat. Le délai d’inactivité est défini sur 10 minutes.

  • Créez un réseau virtuel nommé vnet-1 avec un sous-réseau nommé subnets-1 en utilisant New-AzVirtualNetworkSubnetConfig dans test-rg en utilisant New-AzVirtualNetwork. L’espace d’adressage IP pour le réseau virtuel est 10.0.0.0/16. Un sous-réseau au sein du réseau virtuel est 10.0.0.0/24.

  • Créez un hôte Azure Bastion nommé bastion pour accéder à la machine virtuelle. Utilisez New-AzBastion pour créer l’hôte bastion. Créez une adresse IP publique pour l’hôte bastion avec New-AzPublicIpAddress.

## Create public IP address for NAT gateway ##
$ip = @{
    Name = 'public-ip-nat'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicIP = New-AzPublicIpAddress @ip

## Create NAT gateway resource ##
$nat = @{
    ResourceGroupName = 'test-rg'
    Name = 'nat-gateway'
    IdleTimeoutInMinutes = '10'
    Sku = 'Standard'
    Location = 'eastus2'
    PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat

## Create subnet config and associate NAT gateway to subnet##
$subnet = @{
    Name = 'subnet-1'
    AddressPrefix = '10.0.0.0/24'
    NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.0.1.0/26'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'public-ip'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$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 de l’hôte bastion peut prendre plusieurs minutes. Attendez la fin du déploiement de l’hôte bastion avant de passer à la section suivante.

Machine virtuelle

Dans cette section, vous allez créer une machine virtuelle pour tester la passerelle NAT et vérifier l’adresse IP publique de la connexion sortante.

# Set the administrator and password for the VMs. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'

## Create network interface for virtual machine. ##
$nic = @{
    Name = "nic-1"
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create a virtual machine configuration for VMs ##
$vmsz = @{
    VMName = 'vm-1'
    VMSize = 'Standard_DS1_v2'  
}
$vmos = @{
    ComputerName = 'vm-1'
    Credential = $cred
}
$vmimage = @{
    PublisherName = 'Canonical'
    Offer = '0001-com-ubuntu-server-jammy'
    Skus = '22_04-lts-gen2'
    Version = 'latest'     
}
$vmConfig = New-AzVMConfig @vmsz `
    | Set-AzVMOperatingSystem @vmos -Linux `
    | Set-AzVMSourceImage @vmimage `
    | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine for VMs ##
$vm = @{
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    VM = $vmConfig
}
New-AzVM @vm

Attendez la fin de la création de la machine virtuelle avant de passer à la section suivante.

Tester la passerelle NAT

Dans cette section, nous testons la passerelle NAT. Nous découvrez d’abord l’IP publique de la passerelle NAT. Nous vous connectez ensuite à la machine virtuelle de test et vérifiez la connexion sortante via la passerelle NAT.

  1. Connectez-vous au portail Azure.

  2. Dans la zone de recherche située en haut du portail, entrez IP publique. Sélectionnez Adresses IP publique dans les résultats de la recherche.

  3. Sélectionnez public-ip-nat.

  4. Prenez note de l’adresse IP publique :

    Découvrir l’adresse IP publique de la passerelle NAT

  5. Dans la zone de recherche située en haut du portail, entrez Machine virtuelle. Sélectionnez Machines virtuelles dans les résultats de la recherche.

  6. Sélectionnez vm-1.

  7. Dans la page Vue d’ensemble, sélectionnez Se connecter, puis l’onglet Bastion.

  8. Sélectionnez Utiliser Bastion.

  9. Entrez le nom d’utilisateur et le mot de passe saisis pendant la création de la machine virtuelle. Sélectionnez Connecter.

  10. À l’invite Bash, entrez la commande suivante :

    curl ifconfig.me
    
  11. Vérifiez que l’adresse IP retournée par la commande correspond à l’adresse IP publique de la passerelle NAT.

    azureuser@vm-1:~$ curl ifconfig.me
    20.7.200.36
    

Nettoyer les ressources

Si vous ne comptez pas continuer à utiliser cette application, supprimez le réseau virtuel, la machine virtuelle et la passerelle NAT en effectuant les étapes suivantes :

Remove-AzResourceGroup -Name 'test-rg' -Force

Étapes suivantes

Pour plus d’informations sur Azure NAT Gateway, consultez la ressource suivante :