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 instances NAT pour permettre aux ressources d’un sous-réseau privé de communiquer en dehors du cloud privé virtuel.
Tâches
1. Créer un VPC pour l'instance NAT
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
-
Ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/
. -
Sélectionnez Create VPC (Créer un VPC).
-
Sous Resources to create (Ressources à créer), choisissez VPC and more (VPC et autres).
-
Pour Name tag auto-generation (Génération automatique de balises de nom), saisissez un nom pour le VPC.
-
Pour configurer les sous-réseaux, procédez comme suit :
-
Pour Number of Availability Zones (Nombre de zones de disponibilité), choisissez 1 ou 2, selon vos besoins.
-
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é.
-
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é.
-
-
Sélectionnez Create VPC (Créer un VPC).
2. Créer un groupe de sécurité pour l'instance NAT
Créez un groupe de sécurité avec les règles décrites dans le tableau suivant. Ces règles permettent à votre instance NAT de recevoir du trafic lié à Internet depuis des instances dans le sous-réseau privé, ainsi que du trafic SSH depuis votre réseau. L'instance NAT peut également envoyer le trafic vers Internet pour permettre aux instances du sous-réseau privé de recevoir des mises à jour logicielles.
Les règles entrantes recommandées sont décrites ci-dessous.
Source | Protocole | Plage de ports | Commentaires |
---|---|---|---|
Private subnet CIDR |
TCP | 80 | Autorisez le trafic HTTP entrant depuis les serveurs dans le sous-réseau privé |
Private subnet CIDR |
TCP | 443 | Autorisez le trafic HTTPS entrant depuis les serveurs dans le sous-réseau privé |
Public IP address range of your network |
TCP | 22 | Autoriser l'accès SSH entrant vers l'instance NAT depuis votre réseau (via la passerelle Internet) |
Les règles sortantes recommandées sont décrites ci-dessous.
Destination | Protocole | Plage de ports | Commentaires |
---|---|---|---|
0.0.0.0/0 | TCP | 80 | Autoriser l'accès à Internet du HTTP sortant |
0.0.0.0/0 | TCP | 443 | Autoriser l'accès HTTPS sortant à Internet |
Pour créer le groupe de sécurité
-
Ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/
. -
Dans le panneau de navigation, choisissez Groupes de sécurité.
-
Sélectionnez Create security group (Créer un groupe de sécurité).
-
Saisissez un nom et une description pour le groupe de sécurité.
-
Pour VPC, sélectionnez l'ID du VPC pour votre instance NAT.
-
Ajoutez des règles pour le trafic entrant sous Règles entrantes comme suit :
-
Choisissez Ajouter une règle. Sélectionnez HTTP pour Type et saisissez la plage d'adresses IP de votre sous-réseau privé pour Source.
-
Choisissez Ajouter une règle. Sélectionnez HTTPS pour Type et saisissez la plage d'adresses IP de votre sous-réseau privé pour Source.
-
Choisissez Ajouter une règle. Sélectionnez SSH pour Type et saisissez la plage d'adresses IP de votre réseau pour Source.
-
-
Ajoutez des règles pour le trafic sortant sous Règles sortantes comme suit :
-
Choisissez Ajouter une règle. Choisissez HTTP pour le Type et entrez 0.0.0.0/0 pour Destination.
-
Choisissez Ajouter une règle. Choisissez HTTPS pour le Type et entrez 0.0.0.0/0 pour Destination.
-
-
Sélectionnez Créer un groupe de sécurité.
Pour de plus amples informations, veuillez consulter Groupes de sécurité.
3. Créer une AMI NAT
Une AMI NAT est configurée pour exécuter la NAT sur une EC2 instance. Vous devez créer une AMI NAT, puis lancer votre instance NAT à l'aide de votre AMI NAT.
Si vous prévoyez d'utiliser un système d'exploitation autre qu'Amazon Linux pour votre AMI NAT, reportez-vous à la documentation de ce système d'exploitation pour savoir comment configurer la NAT. Veillez à enregistrer ces paramètres afin qu'ils soient conservés même après le redémarrage d'une instance.
Pour créer une AMI NAT pour Amazon Linux
-
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'instance NAT.
-
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
-
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 :
À 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
.-
Ajoutez la ligne suivante au fichier de configuration.
net.ipv4.ip_forward=1
Enregistrez le fichier de configuration et quittez l'éditeur de texte.
-
Exécutez la commande suivante pour appliquer le fichier de configuration.
sudo sysctl -p /etc/sysctl.d/custom-ip-forwarding.conf
-
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 etlo
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
-
Exécutez les commandes suivantes sur l'instance pour configurer le NAT. Si ce n'est pas le cas
eth0
, remplacez-laeth0
par 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 -
Créez une AMI NAT à partir de l' EC2 instance. Pour plus d'informations, consultez la section Création d'une AMI Linux à partir d'une instance dans le guide de EC2 l'utilisateur Amazon.
4. Lancer une instance NAT
Utilisez la procédure suivante pour lancer une instance NAT à l'aide du VPC, du groupe de sécurité et de l'AMI NAT que vous avez créés.
Pour lancer une instance NAT
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Sur le tableau de bord, choisissez Lancer une instance.
-
Pour Nom, saisissez un nom pour votre instance NAT.
-
Pour les images d'applications et de systèmes d'exploitation, sélectionnez votre AMI NAT (choisissez Parcourir davantage AMIs, Mon AMIs).
-
Dans Type d'instance, choisissez un type d'instance fournissant les ressources de calcul, de mémoire et de stockage dont votre instance NAT a besoin.
-
Pour Paire de clés, sélectionnez une paire de clés existante ou choisissez Créer une paire de clés.
-
Sous Network settings (Paramètres réseau), effectuez les opérations suivantes :
-
Choisissez Modifier.
-
Pour VPC, choisissez le VPC que vous avez créé.
-
Pour Sous-réseau, choisissez le sous-réseau public que vous avez créé.
-
Pour Auto-assign Public IP (Attribuer automatiquement l'adresse IP publique), choisissez Enable (Activer). Vous pouvez également, après avoir lancé l'instance NAT, allouer une adresse IP Elastic et l'attribuer à l'instance NAT.
-
Pour Pre-feu, choisissez Sélectionner un groupe de sécurité existant, puis choisissez le groupe de sécurité que vous avez créé.
-
-
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.
-
Désactiver les vérifications de la source/destination pour l'instance NAT (voir 5. Désactiver des contrôles de source/destination).
-
Mettez à jour la table de routage pour envoyer du trafic vers l'instance NAT (voir 6. Mise à jour de la table de routage).
5. Désactiver des contrôles de source/destination
Chaque EC2 instance effectue source/destination checks by default. This means that the instance must be the source or destination of any traffic it sends or receives. However, a NAT instance must be able to send and receive traffic when the source or destination is not itself. Therefore, you must disable source/destination des vérifications sur l'instance NAT.
Pour désactiver la vérification de la source/destination
-
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Dans le panneau de navigation, choisissez Instances.
-
Sélectionnez l'instance NAT.
-
Sélectionnez Actions, Mise en réseau, Modifier la vérification de la source/destination.
-
Pour Vérifier la source/destination, sélectionnez Arrêter.
-
Choisissez Save (Enregistrer).
-
Si l'instance NAT possède une interface réseau secondaire, sélectionnez-la depuis Interfaces réseau sous l'onglet Networking (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 contenir une route qui envoie le trafic Internet vers l'instance NAT.
Pour mettre à jour la table de routage
-
Ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/
. -
Dans le volet de navigation, choisissez Route tables (Tables de routage).
-
Sélectionnez la table de routage pour le sous-réseau privé.
-
Sous l'onglet Routes, choisissez Modifier les routes, puis Ajouter une route.
-
Saisissez 0.0.0.0/0 pour Destination et l'ID d'instance de l'instance NAT pour Cible.
-
Sélectionnez Enregistrer les modifications.
Pour de plus amples informations, veuillez consulter Configuration des tables de routage.
7. Tester votre instance NAT
Après avoir lancé une instance NAT et effectué les étapes de configuration ci-dessus, vous pouvez tester si une instance de votre sous-réseau privé peut accéder à Internet par l'intermédiaire de l'instance NAT en utilisant l'instance NAT comme serveur bastion.
Tâches
Étape 1 : mettez à jour le groupe de sécurité de l'instance NAT
Pour autoriser les instances de votre sous-réseau privé à envoyer du trafic ping à l'instance NAT, ajoutez une règle autorisant le trafic ICMP entrant et sortant. Pour permettre à l'instance NAT de servir de serveur bastion, ajoutez une règle autorisant le trafic SSH sortant vers le sous-réseau privé.
Pour mettre à jour le groupe de sécurité de votre instance NAT
Ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/
. Dans le panneau de navigation, choisissez Groupes de sécurité.
Cochez la case du groupe de sécurité associé à votre instance NAT.
Sous l’onglet Inbound Rules (Règles entrantes), sélectionnez Edit inbound rules (Modifier les règles entrantes).
Choisissez Ajouter une règle. Choisissez All 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.
-
Sélectionnez Outbound rules (Modifier les règles sortantes) sous l'onglet Outbound rules (Règles sortantes).
-
Choisissez Add rule. Sélectionnez SSH pour Type. Sélectionnez Personnalisé pour Destination et saisissez la plage d'adresses IP de votre sous-réseau privé.
-
Choisissez Ajouter une règle. Choisissez All 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'accès SSH depuis l'instance NAT et utiliser la même paire de clés que celle que vous avez utilisée pour l'instance NAT.
Pour lancer une instance de test dans le sous-réseau privé
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Sur le tableau de bord, choisissez Lancer une instance.
-
Sélectionnez votre sous-réseau privé.
-
N'assignez pas d'adresse IP publique à cette instance.
-
Assurez-vous que le groupe de sécurité de cette instance autorise l'accès SSH entrant depuis votre instance NAT ou depuis la plage d'adresses IP de votre sous-réseau public, ainsi que le trafic ICMP sortant.
-
Sélectionnez la même paire de clés que celle que vous avez utilisée pour l'instance NAT.
Étape 3 : envoi d'un ping à un site Web compatible ICMP
Pour vérifier que l'instance de test de votre sous-réseau privé peut utiliser votre instance NAT pour communiquer avec Internet, exécutez la commande ping.
Pour tester la connexion Internet à partir de votre instance privée
-
À partir de votre ordinateur local, configurez le transfert de l'agent SSH afin de pouvoir utiliser l'instance NAT comme serveur bastion.
-
À partir de votre ordinateur local, connectez-vous à votre instance NAT.
-
À partir de l'instance NAT, exécutez la commande ping et spécifiez un site Web compatible avec ICMP.
[ec2-user@ip-10-0-4-184]$
pingietf.org
Pour vérifier que votre instance NAT dispose d'un accès à Internet, vérifiez que vous avez reçu une sortie telle que la suivante, puis appuyez sur Ctrl+C pour annuler la commande ping. Dans le cas contraire, vérifiez que l'instance NAT se trouve dans un sous-réseau public (sa table de routage contient 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 ...
-
Depuis votre instance NAT, connectez-vous à votre instance dans votre sous-réseau privé en utilisant son adresse IP privée.
[ec2-user@ip-10-0-4-184]$
ssh ec2-user@private-server-private-ip-address
-
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]$
pingietf.org
Pour vérifier que votre instance privée dispose d'un accès à Internet via l'instance NAT, vérifiez que vous avez reçu une sortie telle que la suivante, puis appuyez sur Ctrl+C pour annuler la commande ping.
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 effectué un test ping du site Web dont l'ICMP est 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 instance NAT autorise le trafic ICMP entrant provenant de votre sous-réseau privé. Si ce n'est pas le cas, votre instance NAT ne peut pas recevoir la commande ping depuis votre instance privée.
-
Vérifiez que vous avez désactivé la vérification source/destination pour votre instance NAT. 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'instance NAT, vous pouvez l'arrêter ou la résilier afin qu'elle ne vous soit plus facturée. Si vous avez créé une AMI NAT, vous pouvez créer une nouvelle instance NAT chaque fois que vous en avez besoin.