Vous êtes amenés à collaborer avec d’autres équipes de The Green Earth Post qui travaillent dans d’autres VPC dans le même compte AWS ou dans d’autres. Par exemple, ils souhaitent accéder à votre table RDS pour l’enrichir ou pour récupérer les commentaires pour y faire des analyses. Cette partie a pour but de montrer comment il est possible d’établir la communication entre ces VPC et le vôtre.
Établissez une connexion d'appairage entre VPC
Comme indiqué sur l’image suivante, nous pourrions utiliser le réseau internet pour faire communiquer les VPC entre eux grâce aux composants vus dans le premier chapitre. Cependant, ce réseau est moins fiable que le réseau AWS interne dans lequel ils peuvent communiquer en privé.
A - L’instance pourrait utiliser le réseau internet, mais moins sécurisé et plus lent que le réseau AWS.
B - Une instance de notre partenaire souhaite accéder à notre base. Pour cela, il devra passer par le réseau AWS.
C - Réseau AWS (plus sécurisé et plus rapide).
Par défaut, les deux VPC ne peuvent pas communiquer entre eux via ce réseau. C’est là qu’intervient l'appairage de VPC (VPC peering) ! C’est un composant réseau AWS qui vous permet d’établir une connexion privée entre deux VPC, à une condition : les blocs d'adresse CIDR des VPC ne doivent pas se chevaucher !
De plus, une connexion d’appairage de VPC n’est pas transitive, vous devez créer une connexion à chaque VPC avec lequel vous voulez une connexion, comme indiqué ci-dessous :
A - Un appairage de VPC n’est pas transitif, VPC A et VPC C ne peuvent pas utiliser les appairages #1 et #2 pour communiquer.
L’installation d’un appairage de VPC se fait dans un VPC en spécifiant le second VPC. L'administrateur du second VPC devra accepter l’appairage ! Installer un appairage de VPC n'est pas suffisant. Il vous faudra mettre à jour les tables de routage des sous-réseaux de chaque VPC pour pointer le trafic vers la plage d'adresses IP de l'autre VPC, via l'appairage de VPC créé (voir ci-dessous).
A - Mettre à jour la table de routage pour diriger le trafic vers le bloc d’adresses CIDR utilisé dans le VPC du site web, via l’appairage de VPC.
B - Mettre à jour la table de routage pour diriger le trafic vers le bloc d’adresses CIDR utilisé dans le VPC du partenaire, via l’appairage de VPC.
L’appairage de VPC est un composant réseau AWS très utile, car vous pouvez créer une connexion privée entre VPC de différents comptes et régions AWS. De plus, vous pouvez référencer un groupe de sécurité pour accepter un trafic entrant ou sortant à partir de l’identifiant de l’appairage de VPC concerné.
Toutefois, son principal inconvénient est qu’il n’est pas transitif. Ce qui implique que si vous avez 100 VPC à connecter au vôtre, vous avez 100 appairages de VPC et 200 mises à jour de tables de routage à effectuer !
Accédez à un service AWS depuis une ressource dans un VPC
Imaginez que vous ayez une instance EC2 dans un sous-réseau privé qui doit accéder à un service AWS, par exemple S3, Cloudwatch ou DynamoDB. Or, les API des services AWS sont par défaut publiques et donc uniquement accessibles depuis Internet. Nous pourrions mettre en place l’architecture réseau suivante avec ce qu’on a déjà vu, mais celle-ci est très coûteuse et lente !
Pour y remédier, AWS fournit un composant réseau appelé point de terminaison de VPC (VPC Endpoint), permettant les connexions entre un sous-réseau privé et les services AWS sans nécessiter de passerelle internet, de périphérique NAT, de connexion VPN ou de connexion AWS Direct Connect (que nous étudierons plus tard). La connexion se fait via le réseau AWS privé, moins cher, plus rapide et plus sécurisé.
A - La connexion se fait au travers du réseau AWS privé. Plus rapide et plus sécurisé.
Étudions-les plus en détail.
Point de terminaison d’interface
Il vous permet de vous connecter à certains services AWS grâce à la technologie du service AWS PrivateLink (voir la section suivante). Vous payez les frais de service et la quantité de données transitées.
Chaque point de terminaison est créé uniquement pour un service AWS spécifique. À sa création, il est accompagné d’une interface réseau Elastic (ENI). Il faudra alors mettre à jour le groupe de sécurité de votre ressource, par exemple l’instance EC2, pour diriger le trafic vers le service AWS concerné au travers de cette ENI. Ci-dessous, une instance EC2, dans un sous-réseau privé, qui accède au service Athena.
A - Mettre à jour le groupe de sécurité pour diriger le trafic vers CloudWatch au travers de l’ENI.
Comment est-ce que je la crée ?
Voici les étapes :
Voici comment configurer le groupe de sécurité de l’instance EC2 pour y accéder :
Il faudra également modifier le groupe de sécurité du point de terminaison Athena pour accepter en trafic entrant le groupe de sécurité de l’instance sur le protocole TCP et le port 443.
Point de terminaison de passerelle
Il vous permet de vous connecter uniquement à s3 ou DynamoDB ! En outre, vous ne payez rien, c’est gratuit 😁.
À la création d’un point de terminaison de passerelle pour s3 ou DynamoDB, vous devez mettre à jour la table de routage du sous-réseau privé concerné pour pointer comme cible ce point de terminaison, afin de diriger le trafic vers le service AWS visé.
A - Mettre à jour la table de routage pour diriger tout le trafic vers s3 au travers du point de terminaison de passerelle créé.
Accédez uniquement à une ressource d’un VPC depuis un autre VPC
Nous avons vu, dans la première section, que l’appairage de VPC nous permet d'accéder en privé à une ressource d’un autre VPC. Toutefois, cette méthode nous ouvre tout le réseau de ce VPC et donc, potentiellement, nous pouvons accéder à d’autres ressources. Or, dans le cas de The Green Earth Post, nous souhaitons ouvrir l’accès à la base de données RDS à d’autres partenaires, mais sans qu’ils puissent accéder à d’autres ressources de notre sous-réseau privé, par exemple une instance Elasticache, comme indiqué ci-dessous.
A - L’objectif est d’isoler la base de données d’un point de vue réseau pour que l’instance ne puisse “voir” que la base de données dans le VPC du site web.
B - L’instance du partenaire peut accéder d’un point de vue réseau à ElastiCache, même s’il faut configurer les groupes de sécurité de l’instance et d’ElastiCache pour qu’ils puissent communiquer entre eux.
Pour remédier à cette situation, AWS fournit le service PrivateLink, qui permet d’accéder en privé à une application, une ressource dans un autre VPC, sans exposer, d’un point de vue réseau, les autres ressources de ce VPC.
Pour établir la connexion, PrivateLink nécessite l’installation d’un équilibreur de charge réseau (network load balancer - NBL) devant la ressource qui doit être exposée, aussi appelée point de terminaison de service (service endpoint). Ensuite, il faudra installer un point de terminaison d’interface dans le VPC de la ressource consommatrice pour le relier à PrivateLink et donc avoir accès à la ressource exposée.
Qu’est-ce que cela donne dans le cas de notre base de données ?
Voici le schéma récapitulatif :
A - Les groupes de sécurité entre NLB et RDS doivent être configurés pour que la connexion s’établisse entre eux.
Évolution du diagramme réseau
Voici le diagramme réseau enrichi des composants vus au début du chapitre :
Questions types de l'examen
Voici quelques questions sur les sujets vus dans ce chapitre que vous pourriez avoir à l'examen. Essayez d'y réfléchir vous-même avant de vérifier les réponses.
Question 1
Un architecte de solutions détermine la meilleure méthode de provisionnement de la connectivité internet pour une application de traitement de données qui extrait de grandes quantités de données d'un système de stockage d'objets via Internet. La solution doit être redondante et n'avoir aucune contrainte de bande passante.
Quelle option répond à ces exigences ?
Créer un point de terminaison de VPC
Utiliser une passerelle NAT
Attacher une passerelle internet
Déployer des instances NAT dans un sous-réseau public
Question 2
Vous prévoyez de déployer un certain nombre d'instances EC2 dans votre VPC. Les instances EC2 seront déployées sur plusieurs sous-réseaux et plusieurs AZ. Quelle fonctionnalité AWS peut agir comme un pare-feu au niveau de l'instance pour contrôler le trafic entre vos instances EC2 ?
AWS Network Firewall
Groupe de sécurité
Table de routage
NACL
En résumé
L’appairage de VPC permet aux ressources de deux VPC de communiquer en privé sur le réseau AWS.
L’appairage de VPC n’est pas transitif.
Les points de terminaison de VPC permettent à des ressources dans des sous-réseaux privés d’accéder aux API de certains services AWS (S3, CloudWatch, Athena, DynamoDB, etc.).
PrivateLink permet d’isoler une application ou une ressource dans un sous-réseau privé pour être accessible par d’autres ressources dans d’autres VPC.
PrivateLink nécessite un équilibreur de charge réseau (NLB) et un point de terminaison d’interface.
Étudions ensemble dans le prochain chapitre comment un réseau non AWS distant peut communiquer avec un VPC !