Objectif
Ce lab montre comment permettre à une instance EC2 située dans un VPC totalement privé (sans accès à Internet) d’accéder à Amazon S3 via un VPC Endpoint, sans utiliser d’Internet Gateway ni de NAT Gateway.
1. Création d’un VPC privé sans accès Internet
Dans la console AWS :
- Accéder à VPC > Your VPCs > Create VPC
- Créer un VPC sans connexion Internet :
- Nom : VPC-private
- CIDR : 10.0.0.0/16
🔹 Ce VPC n’aura ni Internet Gateway, ni NAT Gateway.
2. Création de subnets privés
Dans Subnets > Create Subnet, créer deux subnets privés dans le VPC :
VPC | Nom | CIDR | Availability Zone |
VPC-Private | Private-Subnet-1 | 10.0.1.0/24 | us-east-1a |
VPC-Private | Private-Subnet-2 | 10.0.2.0/24 | us-east-1b |
🔹 Ces subnets n’ont pas d’accès Internet.
3. Création d’une table de routage privée
Dans Route Tables > Create Route Table :
- Associer cette table de routage au VPC-Private
- Aller dans Subnet Associations et attacher Private-Subnet-1 et Private-Subnet-2
- Ne pas ajouter de route vers une Internet Gateway ni un NAT Gateway
🔹 Les instances dans ces subnets n’auront pas d’accès Internet.
4. Lancer une instance EC2 dans un subnet privé
Dans EC2 > Launch Instance :
- Choisir Amazon Linux 2 ou Ubuntu
- Placer l’instance dans Private-Subnet-1
- Ne pas attribuer d’adresse IP publique
- Security Group :
- Autoriser SSH (port 22) depuis votre IP publique (si bastion host)
- Autoriser HTTPS (port 443) pour permettre les requêtes S3
🔹 L’instance EC2 est totalement isolée et ne peut pas accéder à Internet.
5. Création d’un VPC Endpoint pour Amazon S3
Dans VPC > Endpoints > Create Endpoint :
- Service Name : Sélectionner com.amazonaws.[region].s3
- VPC : Sélectionner VPC-Private
- Type : Gateway
- Subnets : Sélectionner Private-Subnet-1 et Private-Subnet-2
- Route Table : Associer la table de routage privée
- Policy : Laisser sur Full Access (ou personnaliser)
🔹 Un VPC Endpoint Gateway est maintenant en place pour S3.
6. Vérification des routes
Dans Route Tables > Edit Routes, vérifier que la route suivante a été ajoutée automatiquement :
Destination | Target |
pl-xxxxxxxx (S3 Prefix List) | VPC Endpoint ID |
🔹 Cette route permet au VPC de communiquer avec S3 via le VPC Endpoint.
7. Accès à S3 depuis l’instance EC2
Se connecter à l’instance EC2 via SSH (depuis un bastion host si nécessaire) et tester l’accès à S3 :
Tester la connectivité à S3
aws s3 ls s3://nom-du-bucket
Si l’accès fonctionne, l’instance EC2 peut lister les objets dans le bucket sans utiliser Internet.
Télécharger un fichier depuis S3
aws s3 cp s3://nom-du-bucket/fichier.txt .
Vérifier que l’accès Internet est bien coupé
curl -I https://google.com
🔹 L’accès à Internet échoue, mais l’instance peut toujours interagir avec S3.
Nettoyage des ressources
Si vous souhaitez supprimer les ressources créées :
- Détacher et supprimer le VPC Endpoint.
- Supprimer l’instance EC2.
- Supprimer les subnets privés.
- Supprimer la table de routage privée.
- Supprimer le VPC.
Aller plus loin
- VPC Endpoint Interface vs Gateway : Comparer les deux types de VPC Endpoints.
- IAM Policies pour restreindre l’accès : Configurer des politiques IAM pour restreindre l’accès à certains buckets.
- VPC Endpoints pour d’autres services : Tester avec DynamoDB, Secrets Manager, ou SSM.