Nombreuses sont les entreprises qui exploitent à présent les solutions du cloud computing disponibles sur le marché, afin de bénéficier des multiples avantages qu’offrent ces technologies.
Mais face à cette exploitation, on se retrouve souvent avec le besoin d’établir une connexion réseau dédiée et sécurisée entre le cloud public et l'infrastructure privée on-premise de l’entreprise.
Comment peut-on faire pour réaliser cette connexion réseau d’une manière sécurisée, en gardant l’indépendance et l'intégrité de chaque partie ?
Dans cet article nous allons répondre à cette question en traitant un cas réel.
Notez bien que la lecture de cet article demande des connaissances sur les aspects réseaux (TCP/IP, routage statique / dynamique, sécurité …) et aussi un minimum de connaissances sur les services AWS qui ont un fonctionnement lié à la partie réseau (VPC , VPN , Internet gateway , Network ACL …)
Alors, il s’agit d’établir une connexion entre le réseau AWS et le réseau on-premise qui dessert l’infrastructure privée de l'entreprise en utilisant une interconnexion dédiée Direct Connect.
Celle-ci sera la principale et une autre interconnexion, Site-To-Site VPN, sera utilisée comme solution de secours. Le tout est rendu disponible via une passerelle Transit Gateway qui sera l'élément central de cette architecture.
Commençons par tracer un schéma global qui présente l’architecture hybride cible pour ensuite détailler ses composants :
Introduit lors du AWS re:Invent 2018, AWS Transit Gateway est l'élément-clé pour simplifier la gestion des connexions réseaux sur AWS et de fusionner les ressources cloud et on-premise dans une seule topologie réseau.
Transit Gateway agit comme un routeur virtuel régional pour le trafic circulant entre les VPC dans la même région, VPN et Direct Connect que nous allons attacher à ce service. Le routage au niveau de ce service fonctionne au niveau de la couche 3 du modèle OSI.
Les paquets sont envoyés vers le next-hop attachement (la liaison de la Transit Gateway qui envoie vers le service cible) en se basant sur leur adresses IP de destination.
Transit Gateway est un service régional, si besoin de communiquer entre deux régions nous pouvons relier deux Transit Gateways.
Avantages :
Limites :
Dans cette implémentation, nous allons utiliser les trois types de connexion possibles via une Transit Gateway :
Sachant qu'une fois la Transit Gateway attachée à la fois avec Direct Connect et Site to Site VPN, elle va utiliser par défaut la liaison Direct Connect pour les mêmes routes.
AWS Direct Connect est un service qui vous permet d’établir une interconnexion entre le réseau privé (on-premise) et l'un des emplacements de AWS Direct Connect selon la région que nous allons utiliser.
Physiquement, il s’agit une connexion dédiée en câble fibre optique dont l’une des extrémités est votre routeur privé et l’autre est un routeur d’AWS Direct Connect.
Direct Connect est un service global , il existe plusieurs types d’interconnexion pour le Direct Connect hébergé et dédié. Dans notre cas, nous allons choisir une interconnexion dédiée pour mutualiser le flux des données en transit et avoir plus de sécurité.
Avantages :
Limites à l’usage avec TGW :
Bien que le terme connexion VPN soit aujourd’hui commun, le service AWS Site-To-Site VPN est un service régional qui fait référence à la connexion entre un VPC et un réseau privé on-premise. Il prend en charge les connexions VPN utilisant l'Internet Protocol Security (IPsec).
Avantages :
Limites :
Une fois que nous avons listé les services AWS que nous allons utiliser et les services que nous allons exploiter, il est temps de définir les prérequis pour la mise en oeuvre de cette solution.
Plus de détails concernant le protocole BGP ici :
Pour réaliser cette architecture réseau sur AWS nous allons utiliser Terraform.
L’ensemble du code Terraform est disponible dans le GitLab de WeScale.
Nous allons commencer par créer un module Terraform qui va contenir l’ensemble des ressources à déployer au niveau de chaque VPC :
N.B : Lien vers le code.
Maintenant que la partie réseau de l’architecture est prête, nous allons pouvoir nous pencher sur la création d’un module VPN qui sera notre solution de failover automatique : elle sera également attachée à la Transit Gateway sera en mesure de router le trafic vers le VPC de transit si la solution principale d’interconnexion Direct Connect tombe.
Ce module contient :
N.B : Lien vers le code.
Nous sommes maintenant arrivés à la création du module Terraform pour le Direct Connect qui va être notre solution principale d’interconnexion dédiée entre le réseau d’AWS et le réseau on-premise.
Ce module se compose de :
N.B : Lien vers le code.
Enfin, il ne nous reste qu'à déployer la Transit Gateway avec les trois modules que nous avons créés à l’avance et réaliser les associations, propagations désirées vu que nous n'avons pas choisi qu'AWS s'occupe de les créer automatiquement pour nous : pratique, non ?!
N.B : L'exemple que nous allons déployer ensemble est pour le scénario d'un seul compte AWS, mais il peut facilement être étendu sur des scénarios multi-comptes en utilisant AWS Resources Access Manager et en dupliquant le module VPC que nous avons fabriqué au préalable.
Les valeurs que nous allons utiliser au niveau du code terraform pour l’ensemble des ressources sont des valeur imaginaires, mais pour que ce déploiement fonctionne correctement pour vous, il faut faire attention aux points suivants :
Sans le VLAN tag le flux ne passera pas à travers le Direct Connect
Cette valeur comprise doit être comprise entre 1 et 4094 doit être unique et compatible avec le standard VLAN 802.1q
Une fois que tout est bon pour ces éléments, la structure finale de ce projet va ressembler à ça :
Nous sommes prêts à exécuter les commandes Terraform dans l'ordre suivant :
terraform init
terraform plan
terraform apply
Désormais nous disposons d’une architecture hybride qui relie le réseau d’AWS avec celui de l'entreprise à travers une interconnexion Direct Connect et un Failover automatique via une Liaison IPsec Site-To-Site VPN.
On peut alors imaginer le niveau de flexibilité dont nous disposons maintenant, l'élasticité pour faire face à la variation de la demande, les réductions considérables de coûts que nous pouvons réaliser (temps de réalisation, ressources ...) mais aussi les avancements que nous pouvons accomplir sur nos projets (migration de données, métiers, big data) grâce à l’utilisation des services entièrement managés.
Nous avons vu ensemble comment réaliser une topologie réseau hybride grâce à AWS Transit Gateway et Direct Connect, ces services ouvrent de nouvelles possibilités d’interconnexion et de connectivité permettant de construire des architectures réseaux complexes et sécurisées, mais qui présentent aussi des risques si nous ne savons pas comment les exploiter.
Ainsi, il est indispensable de se servir des outils de visualisation et de traçabilité comme Network Manager, VPC Flow logs, Network ACLs et Trafic Mirroring pour éviter toutes les escalades et les ouvertures de flux non souhaitables.