Le Virtual Private Cloud ou VPC d’Amazon est d’abord un service AWS fondamental inclus dans les catégories Compute et Network d’AWS. Le mot « fondamental » signifie qu’il est impossible d’accéder aux autres services AWS, comme Elastic Compute Cloud (EC2), sans passer par un réseau VPC sous-jacent.
Créer un VPC est donc essentiel pour fonctionner dans le cloud AWS. Jetons un œil à :
- Comment fonctionnent les VPC ?
- Où se trouvent-ils ?
- Comment gérer des VPC ?
- Quels sont les éléments d’un VPC ?
- Qu’en est-il de la responsabilité partagée ?
Comment fonctionnent les VPC ? Environnements de réseau virtuels
Chaque cloud privé virtuel peut créer un environnement de réseau virtuel qui est ensuite isolé dans le cloud AWS. Ce dernier est destiné uniquement à votre compte AWS. D’autres services et ressources AWS opèrent à l’intérieur des réseaux VPC afin de fournir des services cloud.
Un VPC d’AWS semblera familier à n’importe quelle personne qui a l’habitude de gérer un centre de données (DC) physique. En effet, il fonctionne comme un réseau TCP/IP traditionnel pouvant être étendu et mis à niveau en fonction des besoins. Toutefois, dans un VPC, il n’existe pas explicitement de composants du centre de données que vous avez l’habitude d’utiliser comme les routeurs, commutateurs, VLANS, etc. Ils ont été extraits et réorganisés dans le logiciel de cloud computing.
Grâce au VPC, vous pouvez donc rapidement créer une infrastructure réseau virtuelle dans laquelle vous pouvez lancer des instances AWS. Ceci étant, tous les VPC définissent ce dont vos ressources AWS ont besoin. Ce sont notamment des :
- Adresses IP
- Sous-réseaux
- Routage
- Sécurité
- Fonctionnalité de mise en réseau
Où se trouvent les VPC ?
Tous les VPC sont conçus et existent dans une, seulement une région AWS. À noter que les régions AWS peuvent se définir comme des emplacements géographiques partout dans le monde où Amazon regroupe ses propres centres de données cloud.
L’avantage de cette régionalisation est qu’un VPC régional fournit des services réseau qui proviennent de cette zone géographique. Si vous devez, par exemple, fournir un accès plus proche à vos clients d’une autre région, sachez qu’il est de ce fait possible de configurer un autre VPC dans leur région.
Cette théorie correspond parfaitement à celle du cloud computing d’AWS, où les ressources informatiques et les applications sont également fournies par Internet à la demande, mais surtout avec une tarification à l’usage. Puis, la limitation des configurations VPC à certaines régions bien définies vous permet d’offrir de manière sélective vos services réseau là où ils sont vraiment nécessaires, et au moment où ils sont nécessaires.
À noter qu’un compte Amazon peut héberger plusieurs VPC. Puisque les VPC sont également isolés les uns des autres, il est aussi possible de dupliquer les sous-réseaux privés entre plusieurs VPC. Cela ressemble plutôt à la manière dont vous pourrez utiliser un seul sous-réseau dans deux différents centres de données physiques. En outre, vous pouvez aussi ajouter des adresses IP publiques que vous pourrez ensuite utiliser pour atteindre les instances lancées par le VPC depuis Internet.
Il faudra souligner qu’Amazon crée aussi un VPC par défaut pour tous les comptes, incluant :
- Des sous-réseaux par défaut
- Des tables de routage
- Des groupes de sécurité
- Une liste de contrôle d’accès au réseau
Vous pouvez utiliser ou modifier ce VPC pour vos configurations cloud. Autrement, vous pouvez aussi créer un nouveau VPC ainsi que des services de support à partir de zéro.
Comment gérer vos VPC ?
L’administration des VPC se fait par le biais des interfaces de gestion AWS :
- AWS Management Console est en effet l’interface web qui permet de gérer toutes les fonctionnalités AWS (image ci-dessous).
- L’interface de ligne de commande d’AWS ou AWS Command Line Interface (CLI) peut fournir des commandes Windows, Mac et Linux pour plusieurs services AWS. À ce titre, AWS fournit de temps à autre des instructions de configuration qui sont sous forme de commandes CLI.
- Le kit de développement logiciel (SDK) d’AWS ou AWS Software Development Kit peut également fournir des API spécifiques au langage, notamment pour les services AWS, incluant les VPC.
- API de requête ou Query APIs. Il est possible de soumettre les actions API de bas niveau par le biais de requêtes HTTP ou HTTPS. Vous pouvez consulter la référence API EC2 d’AWS pour obtenir plus d’informations.
Les éléments d’un VPC
La console de gestion AWS ou AWS management console basée sur le Web qui est illustré ci-dessus, montre la plupart des ressources VPC que vous pouvez à la fois créer et gérer. Ceci étant, les services réseau VPC comprennent :
- Les blocs d’adresse IPv4 et IPv6
- La création de sous-réseaux
- Les tables de routage
- La connectivité Internet
- Les adresses IP élastiques (EIP)
- La sécurité des réseaux/sous-réseaux
- Les services de mise en réseau supplémentaires
Allons brièvement examiner chacun d’entre eux.
Blocs d’adresse IPv4 et IPv6
Les plages d’adresse IP des VPC sont en fait définies en utilisant des blocs IPv4 et IPv6 de routage interdomaine sans classe ou CIDR (Classless interdomain routing). Ceci étant, il est possible d’ajouter des blocs CIDR primaires et secondaires à votre VPC, si le bloc CIDR secondaire provient, en effet, de la même plage d’adresses que le bloc primaire.
AWS vous recommande donc de spécifier les blocs CIDR grâce à des plages d’adresses privées spécifiées dans la RFC 1918. Ces dernières sont présentées dans le tableau ci-dessous. Vous pouvez consulter la page AWS VPCs and Subnets pour connaître les restrictions relatives aux blocs CIDR que vous pouvez utiliser.
Création de sous-réseaux
Les instances EC2 lancées fonctionnent à l’intérieur d’un sous-réseau VPC désigné (on parle parfois de lancement d’une instance à l’intérieur d’un sous-réseau).
Pour l’adressage IP, le CIDR de tous les sous-réseaux contient un sous-ensemble du bloc CIDR du VPC. En d’autres termes, chaque sous-réseau isole son propre trafic individuel de n’importe quel autre trafic de sous-réseau VPC. Ceci étant, un sous-réseau ne peut contenir qu’un bloc CIDR. Vous pourrez ainsi désigner plusieurs sous-réseaux afin de gérer différents types de trafic.
A titre d’exemple, vous pouvez lancer les instances de serveur de fichiers dans un sous-réseau. Pour les applications mobiles et Web, elles seront exécutées dans un autre sous-réseau, puis les services d’impression dans un autre, et ainsi de suite.
Tables de routage
Les tables de routage contiennent les règles (routes) qui vont déterminer comment diriger le trafic réseau à l’intérieur de vos sous-réseaux et de votre VPC. À noter que le VPC va créer une table de routage par défaut appelée table de routage principale. Cette dernière est associée de façon automatique à tous les sous-réseaux du VPC. Là, vous avez deux solutions :
- Actualiser et utiliser la table de routage principale pour diriger le trafic réseau.
- Créer votre table de routage que vous pourrez utiliser pour le trafic des sous-réseaux individuels.
Connectivité Internet
Pour accéder à Internet, chaque configuration VPC peut, en effet, héberger une passerelle Internet. Ensuite, elle fournira des services de traduction d’adresses réseau (NAT) en utilisant la passerelle Internet, la passerelle NAT ou des instances NAT.
Adresses IP élastiques (EIP)
Les EIP sont des adresses IPv4 publiques statiques. Elles sont allouées de manière permanente à votre compte AWS (les EIP ne sont pas proposées pour IPv6). Elles sont utilisées pour permettre au public d’accéder à Internet vers :
- Une instance
- Une interface réseau élastique AWS ou elastic network interface (ENI)
- D’autres services nécessitant une adresse IP publique
Vous pouvez allouer des EIP pour utiliser le réseau de façon permanente et à long terme.
Sécurité du réseau/sous-réseau
Les VPC utilisent certains groupes de sécurité afin de pouvoir fournir une protection avec état (l’état de la session de connexion est ainsi maintenu) pour les instances. Selon AWS, ces groupes de sécurité sont considérés comme des pare-feu virtuels.
En outre, les VPC fournissent aussi des listes de contrôle d’accès au réseau (network access control lists ou NACL), notamment aux sous-réseaux VPC sans état où l’état de la connexion n’est pas du tout maintenu.
Services de mise en réseau supplémentaires
Bien évidemment, ceux qui sont mentionnés précédemment ne sont pas les seuls services AWS fournis par un VPC. Ceci étant, vous pouvez aussi utiliser le VPC si vous souhaitez configurer d’autres services de mise en réseau courants tels que :
- Les réseaux privés virtuels (VPN)
- La connectivité directe entre VPC (VPC peering)
- Les passerelles
- Les sessions miroir
VPC et responsabilité partagée
Avant de configurer les VPC, vous devrez consulter le modèle de responsabilité partagée d’Amazon. Selon ce dernier, la conformité et la sécurité sont une responsabilité partagée entre AWS et ses clients.
Pour vos configurations et votre compte AWS, AWS est responsable de la « sécurité du cloud », alors que les clients sont responsables de la « sécurité dans le cloud ». En général, :
- AWS se charge de l’infrastructure cloud AWS (comme le matériel, le réseau, le logiciel de cloud et les installations) qui exécute les services AWS.
- De leur côté, les clients sont responsables de tout ce qu’ils vont exécuter dans le cloud, comme les serveurs, le cryptage, les applications, les données, l’accès, la sécurité, les systèmes d’exploitation, etc.
Le modèle de responsabilité partagée définit donc responsable de problèmes spécifiques en cas de temps d’arrêt des services AWS, de violation de la sécurité, voire de perte d’activité. Il est aussi important de comprendre ces limites lorsque vous établissez la configuration de votre VPC. A ce titre, vous pouvez consulter le modèle de responsabilité partagée pour obtenir plus d’informations.