Comment lancer une instance EC2 en toute sécurité dans un VPC personnalisé

Apprenez à passer d'un réseau AWS par défaut à une configuration sécurisée de Cloud Privé Virtuel (VPC) personnalisé. Ce guide détaille la création de VPC, la définition de sous-réseaux publics/privés, la configuration des tables de routage pour un accès Internet contrôlé (via IGW ou NAT), et l'application de règles strictes de groupes de sécurité pour lancer et gérer en toute sécurité des instances EC2.

33 vues

Comment lancer en toute sécurité une instance EC2 au sein d'un VPC personnalisé

Lancer une instance Amazon EC2 directement sur le réseau public AWS par défaut est rapide, mais pour tout environnement de production, de pré-production ou sensible, cela introduit des risques inutiles. La sécurisation de vos ressources de calcul nécessite de les isoler au sein d'un Virtual Private Cloud (VPC) – votre propre section logiquement isolée du cloud AWS. Ce guide vous accompagne à travers les étapes essentielles pour configurer un VPC personnalisé, définir les composants réseau nécessaires tels que les sous-réseaux et les tables de routage, et lancer en toute sécurité une instance EC2 protégée par des règles de groupe de sécurité strictes.

Maîtriser la configuration des VPC est fondamental pour construire une infrastructure AWS robuste, évolutive et sécurisée. En définissant manuellement les limites de votre réseau, vous obtenez un contrôle granulaire sur le flux de trafic, l'adressage IP et la connectivité externe, renforçant considérablement votre environnement d'application contre les accès non autorisés.

Comprendre les composants clés d'un VPC sécurisé

Un Virtual Private Cloud (VPC) est la base sur laquelle repose toute la mise en réseau sécurisée d'AWS. Avant de lancer une instance, vous devez vous assurer que les composants suivants sont correctement configurés :

  1. VPC : Le conteneur principal de votre réseau, définissant une plage d'adresses IP privées (bloc CIDR).
  2. Sous-réseaux (Subnets) : Divisions au sein du VPC, catégorisées comme Publics (avec accès direct à Internet) ou Privés (isolés).
  3. Passerelle Internet (Internet Gateway - IGW) : Nécessaire pour que les ressources des sous-réseaux publics puissent communiquer avec Internet.
  4. Tables de routage (Route Tables) : Règles qui dictent la direction du trafic réseau depuis les sous-réseaux.
  5. Groupes de sécurité (Security Groups - SGs) : Pare-feu avec état qui contrôlent le trafic entrant et sortant au niveau de l'instance.

Étape 1 : Création du VPC personnalisé et des sous-réseaux

Nous commençons par créer l'enceinte réseau et la segmenter en zones fonctionnelles. Pour une configuration standard, nous recommandons au moins un sous-réseau public et un sous-réseau privé.

1.1 Création du VPC

Lors de la création de votre VPC, sélectionnez un bloc CIDR privé qui ne chevauche aucune des adresses de vos réseaux sur site auxquels vous pourriez vous connecter ultérieurement (par exemple, en utilisant AWS VPN ou Direct Connect).

Exemple de CIDR de VPC : 10.0.0.0/16

1.2 Création des sous-réseaux

Les sous-réseaux doivent résider dans une zone de disponibilité (AZ) spécifique pour une haute disponibilité. Pour cet exemple, nous allons créer un sous-réseau public et un sous-réseau privé dans us-east-1a.

  • Sous-réseau public : 10.0.1.0/24 (Utilisé pour les hôtes bastion ou les équilibreurs de charge)
  • Sous-réseau privé : 10.0.2.0/24 (Utilisé pour les serveurs d'applications et les bases de données)

Étape 2 : Configuration de la connectivité Internet et du routage

Les ressources des sous-réseaux privés ne doivent pas avoir d'accès direct à Internet. Les ressources du sous-réseau public doivent être acheminées correctement pour atteindre Internet via une passerelle Internet (IGW).

2.1 Attacher une passerelle Internet (IGW)

  1. Créez une ressource IGW dans la console AWS.
  2. Attachez cette IGW à votre VPC nouvellement créé.

2.2 Configuration des tables de routage

Les tables de routage définissent les chemins de trafic. Vous en avez besoin d'au moins deux : une pour le sous-réseau public et une pour le sous-réseau privé.

Table de routage publique

Cette table dirige tout le trafic non local (0.0.0.0/0) vers la passerelle Internet attachée.

Destination Cible
10.0.0.0/16 (CIDR du VPC) local
0.0.0.0/0 igw-xxxxxxxx (Votre ID d'IGW)

Associez cette table de routage à votre sous-réseau public (10.0.1.0/24).

Table de routage privée

Cette table n'autorise que la communication interne. Crucialement, elle ne doit avoir aucune route pointant vers l'IGW.

Destination Cible
10.0.0.0/16 (CIDR du VPC) local

Associez cette table de routage à votre sous-réseau privé (10.0.2.0/24).

Bonne pratique : Si les ressources du sous-réseau privé ont besoin de télécharger des correctifs ou des mises à jour, vous devriez utiliser une passerelle NAT (NAT Gateway) placée dans le sous-réseau public. La table de routage privée pointerait alors le trafic 0.0.0.0/0 vers la passerelle NAT au lieu de l'IGW.

Étape 3 : Définition de règles de groupes de sécurité strictes

Les groupes de sécurité (SGs) agissent comme des pare-feu virtuels pour vos instances EC2. Ils opèrent au niveau de l'instance et sont avec état (le trafic de retour est automatiquement autorisé).

Pour une configuration sécurisée, vous devez adhérer au principe du moindre privilège, en n'autorisant explicitement que le trafic entrant nécessaire.

Exemple de groupe de sécurité pour un serveur web (sous-réseau privé)

Si cette instance EC2 est un serveur d'applications uniquement accessible depuis un équilibreur de charge d'applications (ALB) résidant dans le sous-réseau public, les règles doivent être très restrictives :

Règles entrantes

Type Protocole Plage de ports Source
HTTP TCP 80 ID du SG de l'ALB
HTTPS TCP 443 ID du SG de l'ALB
SSH TCP 22 Plage IP de votre réseau d'entreprise ou ID du SG de l'hôte bastion

Règles sortantes

Par défaut, le trafic sortant est généralement autorisé vers toutes les destinations (0.0.0.0/0). Vous pouvez le restreindre davantage si nécessaire (par exemple, n'autoriser que les connexions vers un SG d'instance RDS).

Conseil de sécurité : N'attribuez jamais 0.0.0.0/0 au port 22 (SSH) ou au port 3389 (RDP) sur un groupe de sécurité exposé publiquement. Restreignez toujours l'accès de gestion aux plages d'IP internes connues.

Étape 4 : Lancement sécurisé de l'instance EC2

Lors du lancement de votre instance, assurez-vous de la mapper aux composants réseau corrects établis ci-dessus.

  1. Choisir l'AMI et le type d'instance : Sélectionnez l'Amazon Machine Image (AMI) et les spécifications matérielles souhaitées.
  2. Paramètres réseau : À l'étape 'Configurer les détails de l'instance' :
    • Réseau : Sélectionnez votre VPC personnalisé.
    • Sous-réseau : Sélectionnez le sous-réseau privé (10.0.2.0/24) si vous lancez un serveur d'applications qui ne doit pas être directement exposé à Internet.
    • Attribuer automatiquement une IP publique : Assurez-vous que cette option est Désactivée si vous lancez dans un sous-réseau privé. (Si vous sélectionnez un sous-réseau public, vous pouvez l'activer pour une instance nécessitant un accès public direct, comme un hôte bastion).
    • Groupes de sécurité : Sélectionnez le groupe de sécurité que vous avez configuré à l'étape 3.
  3. Stockage et paire de clés : Configurez le stockage et associez une paire de clés pour un accès SSH sécurisé.

Accès aux instances dans un sous-réseau privé

Étant donné que l'instance résidant dans le sous-réseau privé n'a pas d'adresse IP publique, vous ne pouvez pas vous connecter en SSH directement depuis Internet. Vous devez utiliser l'une des deux méthodes sécurisées suivantes :

  1. Hôte bastion (Jump Box) : Lancez une petite instance EC2 renforcée dans le sous-réseau public. Vous vous connectez d'abord en SSH à l'hôte bastion, puis, depuis l'hôte bastion, en SSH à l'instance privée en utilisant son adresse IP privée.
  2. AWS Systems Manager (SSM) Session Manager : C'est la méthode moderne préférée. Si l'instance a l'agent SSM installé et un rôle IAM approprié attaché permettant la connectivité SSM, vous pouvez initier une session shell sécurisée directement depuis la console AWS sans avoir besoin de règles SSH entrantes ou d'hôtes bastion.

Résumé et prochaines étapes

La sécurisation d'une instance EC2 au sein d'un VPC personnalisé implique une superposition de la sécurité réseau, du niveau macro (VPC, sous-réseaux, tables de routage) au niveau micro (groupes de sécurité). En contrôlant soigneusement l'adressage IP et le flux de trafic :

  • Vous assurez que les serveurs d'applications résident dans des sous-réseaux privés isolés.
  • Vous utilisez l'IGW ou la passerelle NAT uniquement lorsque cela est nécessaire.
  • Vous appliquez le principe du moindre privilège via les règles d'entrée des groupes de sécurité.

Une fois votre instance lancée, n'oubliez pas de surveiller son activité à l'aide d'AWS CloudTrail et des VPC Flow Logs pour maintenir une visibilité continue sur le trafic de votre réseau privé.