Permettre aux ressources privées de communiquer en dehors du VPC - Amazon Virtual Private Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Permettre aux ressources privées de communiquer en dehors du VPC

Cette section décrit comment créer et utiliser des NAT instances pour permettre aux ressources d'un sous-réseau privé de communiquer en dehors du cloud privé virtuel.

1. Créez un VPC pour l'NATinstance

Utilisez la procédure suivante pour créer un VPC avec un sous-réseau public et un sous-réseau privé.

Pour créer le VPC
  1. Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/.

  2. Choisissez Create VPC.

  3. Pour que Resources crée, choisissez VPCet plus encore.

  4. Pour la génération automatique du tag Name, entrez un nom pour leVPC.

  5. Pour configurer les sous-réseaux, procédez comme suit :

    1. Pour Number of Availability Zones (Nombre de zones de disponibilité), choisissez 1 ou 2, selon vos besoins.

    2. Pour Number of public subnets (Nombre de sous-réseaux publics), assurez-vous de disposer d'un sous-réseau public par zone de disponibilité.

    3. Pour Number of private subnets (Nombre de sous-réseaux privés), assurez-vous de disposer d'un sous-réseau privé par zone de disponibilité.

  6. Choisissez Create VPC.

2. Création d'un groupe de sécurité pour l'NATinstance

Créez un groupe de sécurité avec les règles décrites dans le tableau suivant. Ces règles permettent à votre NAT instance de recevoir du trafic Internet provenant d'instances du sous-réseau privé, ainsi que du SSH trafic provenant de votre réseau. L'NATinstance peut également envoyer du trafic vers Internet, ce qui permet aux instances du sous-réseau privé d'obtenir des mises à jour logicielles.

Les règles recommandées pour le trafic entrant sont les suivantes.

Source Protocole Plage de ports Commentaires
Private subnet CIDR TCP 80 Autoriser le HTTP trafic entrant depuis les serveurs du sous-réseau privé
Private subnet CIDR TCP 443 Autoriser le HTTPS trafic entrant depuis les serveurs du sous-réseau privé
Public IP address range of your network TCP 22 Autoriser l'SSHaccès entrant à l'NATinstance depuis votre réseau (via la passerelle Internet)

Les règles sortantes recommandées sont les suivantes.

Destination Protocole Plage de ports Commentaires
0.0.0.0/0 TCP 80 Autoriser l'HTTPaccès sortant à Internet
0.0.0.0/0 TCP 443 Autoriser l'HTTPSaccès sortant à Internet
Pour créer le groupe de sécurité
  1. Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le panneau de navigation, choisissez Groupes de sécurité.

  3. Sélectionnez Create security group (Créer un groupe de sécurité).

  4. Saisissez un nom et une description pour le groupe de sécurité.

  5. Pour VPC, sélectionnez l'ID du VPC pour votre NAT instance.

  6. Ajoutez des règles pour le trafic entrant sous Règles entrantes comme suit :

    1. Choisissez Ajouter une règle. Choisissez HTTPType et entrez la plage d'adresses IP de votre sous-réseau privé pour Source.

    2. Choisissez Ajouter une règle. Choisissez HTTPSType et entrez la plage d'adresses IP de votre sous-réseau privé pour Source.

    3. Choisissez Ajouter une règle. Choisissez SSHType et entrez la plage d'adresses IP de votre réseau pour Source.

  7. Ajoutez des règles pour le trafic sortant sous Règles sortantes comme suit :

    1. Choisissez Ajouter une règle. Choisissez Type et entrez 0.0.0.0/0 HTTPpour Destination.

    2. Choisissez Ajouter une règle. Choisissez Type et entrez 0.0.0.0/0 HTTPSpour Destination.

  8. Sélectionnez Créer un groupe de sécurité.

Pour de plus amples informations, veuillez consulter Groupes de sécurité.

3. Créez un NAT AMI

A NAT AMI est configuré pour s'exécuter NAT sur une EC2 instance. Vous devez créer une instance, NAT AMI puis lancer votre NAT instance à l'aide de votre NATAMI.

Si vous envisagez d'utiliser un système d'exploitation autre qu'Amazon Linux NATAMI, consultez la documentation de ce système d'exploitation pour savoir comment le configurerNAT. Veillez à enregistrer ces paramètres afin qu'ils soient conservés même après le redémarrage d'une instance.

Pour créer un NAT AMI pour Amazon Linux
  1. Lancez une EC2 instance exécutant AL2 023 ou Amazon Linux 2. Assurez-vous de spécifier le groupe de sécurité que vous avez créé pour l'NATinstance.

  2. Connectez-vous à votre instance et exécutez les commandes suivantes sur l'instance pour activer les iptables.

    sudo yum install iptables-services -y sudo systemctl enable iptables sudo systemctl start iptables
  3. Procédez comme suit sur l'instance pour activer le transfert d'IP de manière à ce qu'il perdure après le redémarrage :

    1. À l'aide d'un éditeur de texte, tel que nano ou vim, créez le fichier de configuration suivant : /etc/sysctl.d/custom-ip-forwarding.conf.

    2. Ajoutez la ligne suivante au fichier de configuration.

      net.ipv4.ip_forward=1
    3. Enregistrez le fichier de configuration et quittez l'éditeur de texte.

    4. Exécutez la commande suivante pour appliquer le fichier de configuration.

      sudo sysctl -p /etc/sysctl.d/custom-ip-forwarding.conf
  4. Exécutez la commande suivante sur l'instance et notez le nom de l'interface réseau principale. Vous aurez besoin de ces informations pour l'étape suivante.

    netstat -i

    Dans la sortie de l'exemple suivant, docker0 est une interface réseau créée par docker, eth0 est l'interface réseau principale et lo est l'interface de bouclage.

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg docker0 1500 0 0 0 0 0 0 0 0 BMU eth0 9001 7276052 0 0 0 5364991 0 0 0 BMRU lo 65536 538857 0 0 0 538857 0 0 0 LRU

    Dans la sortie de l'exemple suivant, l'interface réseau principale est enX0.

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enX0 9001 1076 0 0 0 1247 0 0 0 BMRU lo 65536 24 0 0 0 24 0 0 0 LRU

    Dans la sortie de l'exemple suivant, l'interface réseau principale est ens5.

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens5 9001 14036 0 0 0 2116 0 0 0 BMRU lo 65536 12 0 0 0 12 0 0 0 LRU
  5. Exécutez les commandes suivantes sur l'instance à configurerNAT. Si l'interface réseau principale ne l'est paseth0, remplacez eth0 avec l'interface réseau principale que vous avez indiquée à l'étape précédente.

    sudo /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo /sbin/iptables -F FORWARD sudo service iptables save
  6. Créez un NAT AMI à partir de l'EC2instance. Pour plus d'informations, consultez la section Créer un système Linux AMI à partir d'une instance dans le guide de EC2 l'utilisateur Amazon.

4. Lancer une NAT instance

Utilisez la procédure suivante pour lancer une NAT instance à l'aide du VPC groupe de sécurité NAT AMI que vous avez créé.

Pour lancer une NAT instance
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Sur le tableau de bord, choisissez Lancer une instance.

  3. Dans Nom, entrez le nom de votre NAT instance.

  4. Pour les images de l'application et du système d'exploitation, sélectionnez votre NAT AMI (choisissez Parcourir davantage AMIs, Mon AMIs).

  5. Pour Type d'instance, choisissez un type d'instance fournissant les ressources de calcul, de mémoire et de stockage dont votre NAT instance a besoin.

  6. Pour Paire de clés, sélectionnez une paire de clés existante ou choisissez Créer une paire de clés.

  7. Sous Network settings (Paramètres réseau), effectuez les opérations suivantes :

    1. Choisissez Modifier.

    2. Pour VPC, choisissez celui VPC que vous avez créé.

    3. Pour Sous-réseau, choisissez le sous-réseau public que vous avez créé.

    4. Pour Auto-assign Public IP (Attribuer automatiquement l'adresse IP publique), choisissez Enable (Activer). Une fois que vous avez lancé l'NATinstance, vous pouvez également allouer une adresse IP élastique et l'attribuer à l'NATinstance.

    5. Pour Pre-feu, choisissez Sélectionner un groupe de sécurité existant, puis choisissez le groupe de sécurité que vous avez créé.

  8. Choisissez Launch instance (Lancer une instance). Sélectionnez l'ID de l'instance pour ouvrir la page des détails de l'instance. Attendez que l'état de l'instance passe à En cours d'exécution et que les vérifications de l'état réussissent.

  9. Désactivez les vérifications source/destination pour l'NATinstance (voir5. Désactiver des contrôles de source/destination).

  10. Mettez à jour la table de routage pour envoyer le trafic vers l'NATinstance (voir6. Mise à jour de la table de routage).

5. Désactiver des contrôles de source/destination

Chaque EC2 instance effectue des vérifications source/destination par défaut. Cela signifie que l'instance doit être la source ou la destination de tout trafic qu'elle envoie ou qu'elle reçoit. Toutefois, une NAT instance doit être capable d'envoyer et de recevoir du trafic lorsque la source ou la destination n'est pas elle-même. Par conséquent, vous devez désactiver les contrôles source/destination sur l'NATinstance.

Pour désactiver la vérification de la source/destination
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, choisissez Instances.

  3. Sélectionnez l'NATinstance.

  4. Sélectionnez Actions, Mise en réseau, Modifier la vérification de la source/destination.

  5. Pour Vérifier la source/destination, sélectionnez Arrêter.

  6. Choisissez Save (Enregistrer).

  7. Si l'NATinstance possède une interface réseau secondaire, choisissez-la dans Interfaces réseau dans l'onglet Mise en réseau. Sélectionnez l'ID d'interface pour accéder à la page Network interfaces (Interfaces réseau). Sélectionnez Actions, Change source/dest. check (Changer la vérification de source/destionation), désélectionnez Enable (Activer), puis sélectionnez Save (Enregistrer).

6. Mise à jour de la table de routage

La table de routage du sous-réseau privé doit comporter un itinéraire qui envoie le trafic Internet à l'NATinstance.

Pour mettre à jour la table de routage
  1. Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le volet de navigation, choisissez Route tables (Tables de routage).

  3. Sélectionnez la table de routage pour le sous-réseau privé.

  4. Sous l'onglet Routes, choisissez Modifier les routes, puis Ajouter une route.

  5. Entrez 0.0.0.0/0 pour Destination et l'ID d'instance de l'NATinstance pour Target.

  6. Sélectionnez Enregistrer les modifications.

Pour de plus amples informations, veuillez consulter Configuration des tables de routage.

7. Testez votre NAT instance

Après avoir lancé une NAT instance et terminé les étapes de configuration ci-dessus, vous pouvez tester si une instance de votre sous-réseau privé peut accéder à Internet via l'NATinstance en utilisant l'NATinstance comme serveur bastion.

Étape 1 : mettre à jour le groupe de sécurité de l'NATinstance

Pour autoriser les instances de votre sous-réseau privé à envoyer du trafic ping à l'NATinstance, ajoutez une règle autorisant le trafic entrant et sortantICMP. Pour permettre à l'NATinstance de servir de serveur bastion, ajoutez une règle autorisant le SSH trafic sortant vers le sous-réseau privé.

Pour mettre à jour le groupe de sécurité de votre NAT instance
  1. Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le panneau de navigation, choisissez Groupes de sécurité.

  3. Cochez la case correspondant au groupe de sécurité associé à votre NAT instance.

  4. Sous l’onglet Inbound Rules (Règles entrantes), sélectionnez Edit inbound rules (Modifier les règles entrantes).

  5. Choisissez Ajouter une règle. Choisissez Tout ICMP - IPv4 pour Type. Choisissez Personnalisé pour Source et saisissez la plage d'adresses IP de votre sous-réseau privé. Sélectionnez Enregistrer les règles.

  6. Sélectionnez Outbound rules (Modifier les règles sortantes) sous l'onglet Outbound rules (Règles sortantes).

  7. Choisissez Ajouter une règle. Choisissez SSHle type. Sélectionnez Personnalisé pour Destination et saisissez la plage d'adresses IP de votre sous-réseau privé.

  8. Choisissez Ajouter une règle. Choisissez Tout ICMP - IPv4 pour Type. Choisissez N'importe où - IPv4 pour Destination. Sélectionnez Enregistrer les règles.

Étape 2 : lancez une instance de test dans le sous-réseau privé

Lancez une instance dans votre sous-réseau privé. Vous devez autoriser l'SSHaccès depuis l'NATinstance et utiliser la même paire de clés que celle que vous avez utilisée pour l'NATinstance.

Pour lancer une instance de test dans le sous-réseau privé
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Sur le tableau de bord, choisissez Lancer une instance.

  3. Sélectionnez votre sous-réseau privé.

  4. N'assignez pas d'adresse IP publique à cette instance.

  5. Assurez-vous que le groupe de sécurité de cette instance autorise l'SSHaccès entrant depuis votre NAT instance, ou depuis la plage d'adresses IP de votre sous-réseau public, ainsi que le trafic sortantICMP.

  6. Sélectionnez la même paire de clés que celle que vous avez utilisée pour l'NATinstance.

Étape 3 : envoyer un ping à un ICMP site Web compatible

Pour vérifier que l'instance de test de votre sous-réseau privé peut utiliser votre NAT instance pour communiquer avec Internet, exécutez la ping commande.

Pour tester la connexion Internet à partir de votre instance privée
  1. À partir de votre ordinateur local, configurez le transfert d'SSHagent afin de pouvoir utiliser l'NATinstance comme serveur bastion.

    Linux and macOS
    ssh-add key.pem
    Windows

    Téléchargez et installez Pageant, s'il n'est pas déjà installé.

    Convertissez votre clé privée au format .ppk à l'aide de P. uTTYgen

    Démarrez Pageant, cliquez avec le bouton droit sur l'icône Pageant de la barre des tâches (il peut être masqué) et choisissez Ajouter une clé. Sélectionnez le fichier .ppk que vous avez créé, saisissez le mot de passe si nécessaire et choisissez Ouvrir.

  2. À partir de votre ordinateur local, connectez-vous à votre NAT instance.

    Linux and macOS
    ssh -A ec2-user@nat-instance-public-ip-address
    Windows

    Connectez-vous à votre NAT instance à l'aide de PuTTY. Pour Authentification, vous devez sélectionner Autoriser le transfert des agents et laisser Fichier de clé privée pour l'authentification vide.

  3. À partir de l'NATinstance, exécutez la ping commande en spécifiant un site Web activé pourICMP.

    [ec2-user@ip-10-0-4-184]$ ping ietf.org

    Pour confirmer que votre NAT instance dispose d'un accès à Internet, vérifiez que vous avez reçu un résultat tel que le suivant, puis appuyez Ctrl+C pour annuler la ping commande. Dans le cas contraire, vérifiez que l'NATinstance se trouve dans un sous-réseau public (sa table de routage comporte une route vers une passerelle Internet).

    PING ietf.org (104.16.45.99) 56(84) bytes of data. 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=1 ttl=33 time=7.88 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=2 ttl=33 time=8.09 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=3 ttl=33 time=7.97 ms ...
  4. À partir de votre NAT instance, connectez-vous à votre instance dans votre sous-réseau privé à l'aide de son adresse IP privée.

    [ec2-user@ip-10-0-4-184]$ ssh ec2-user@private-server-private-ip-address
  5. Depuis votre instance privée, vérifiez que vous pouvez vous connecter à Internet en exécutant la commande ping.

    [ec2-user@ip-10-0-135-25]$ ping ietf.org

    Pour confirmer que votre instance privée dispose d'un accès à Internet via l'NATinstance, vérifiez que vous avez reçu un résultat tel que le suivant, puis appuyez Ctrl+C pour annuler la ping commande.

    PING ietf.org (104.16.45.99) 56(84) bytes of data. 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=1 ttl=33 time=8.76 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=2 ttl=33 time=8.26 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=3 ttl=33 time=8.27 ms ...
Résolution des problèmes

Si la commande ping échoue à partir du serveur du sous-réseau privé, procédez comme suit pour résoudre le problème :

  • Vérifiez que vous avez envoyé un ping à un site Web ICMP activé. Dans le cas contraire, votre serveur ne pourra pas recevoir de paquets de réponse. Pour le tester, exécutez la même commande ping depuis un terminal de ligne de commande sur votre propre ordinateur.

  • Vérifiez que le groupe de sécurité de votre NAT instance autorise le ICMP trafic entrant depuis votre sous-réseau privé. Dans le cas contraire, votre NAT instance ne pourra pas recevoir la ping commande de votre instance privée.

  • Vérifiez que vous avez désactivé la vérification de la source/de la destination pour votre NAT instance. Pour de plus amples informations, veuillez consulter 5. Désactiver des contrôles de source/destination.

  • Vérifiez que vous avez correctement configuré vos tables de routage. Pour de plus amples informations, veuillez consulter 6. Mise à jour de la table de routage.

Étape 4 : Nettoyer

Si vous n'avez plus besoin du serveur de test dans le sous-réseau privé, résiliez l'instance afin qu'elle ne vous soit plus facturée. Pour plus d'informations, consultez la section Résiliation de votre instance dans le guide de EC2 l'utilisateur Amazon.

Si vous n'avez plus besoin de l'NATinstance, vous pouvez l'arrêter ou y mettre fin, de sorte qu'elle ne vous soit plus facturée. Si vous avez créé une NATAMI, vous pouvez créer une nouvelle NAT instance chaque fois que vous en avez besoin.