Fiche
Endpoint (VPC endpoint)
Image : un guichet AWS ouvert directement dans ta rue.
Un endpoint donne accès à un service AWS (S3, Secrets Manager, Bedrock…) depuis un VPC, sans Internet : ni IGW, ni NAT.
Deux sortes
| Interface | Gateway | |
|---|---|---|
| Image | un guichet avec sa propre adresse privée dans la rue | une ligne en plus sur le panneau : « adresses S3 → endpoint » |
| Services | presque tous | S3 et DynamoDB seulement |
| Prix | payant à l'heure et au Go | gratuit |
| Se branche sur | des subnets | des tables de routage |
Le trajet
machine ──► guichet Interface (10.x.x.x, dans la rue) ──► service AWS
machine ──► panneau : « liste S3 » -> Gateway ──────────► S3
L'annuaire (DNS privé)
Avec private_dns_enabled = true, le nom habituel du service (ex.
secretsmanager.<région>.amazonaws.com) est traduit en adresse du guichet local.
Le code n'a rien à changer.
Le règlement : la policy
- Chaque endpoint a une policy : qui peut faire quoi à travers ce guichet.
- Par défaut : tout le monde peut tout faire.
- Un guichet AWS accepte n'importe quelle clé AWS, même celle d'un autre compte. Sans restriction, on peut faire sortir des données vers le compte d'un pirate sans Internet.
- Réflexe : exiger
aws:PrincipalAccount= mon compte, et pour S3,s3:ResourceAccount= mon compte.
Ce qu'il faut retenir
- Une task Fargate sans Internet qui tire une image ECR a besoin de
ecr.api,ecr.dkret du Gateway S3 : les couches des images sont dans S3. - Avec l'outil
awslogs, il faut aussi l'endpointlogs. - Un endpoint ne sert qu'à son VPC. Un VPC voisin relié par peering ne peut pas utiliser un endpoint Gateway.
- Dans un diff : une policy sans
Condition, c'est le signal d'alarme.
En Terraform : aws_vpc_endpoint, avec vpc_endpoint_type ("Interface" ou "Gateway"), service_name et policy.
Sources : AWS : interface endpoints, AWS : gateway endpoints, AWS : endpoint policies, AWS : ECR VPC endpoints.