Comment résoudre les problèmes liés aux points de terminaison d'un VPC dans la configuration réseau de mon environnement Elastic Beanstalk privé ?

Lecture de 6 minute(s)
0

Je veux résoudre des problèmes de réseau dans mon environnement AWS Elastic Beanstalk entièrement privé.

Brève description

Les environnements entièrement privés ont la configuration suivante etautorisent l'accès à votre application web uniquement depuis le même Amazon Virtual Private Cloud (Amazon VPC).

  • Visibilité de l'équilibreur de charge : privée
  • Sous-réseaux de l'équilibreur de charge : deux sous-réseaux privés
  • Adresse IP publique de l'instance : désactivée
  • Sous-réseaux d'instance : deux sous-réseaux privés

L'ensemble des communications via le VPC s'effectue via des points de terminaison d'un VPC configurés. En outre, toutes les communications au sein du VPC se réalisent via la route locale dans la table de routage. Ci-dessous, voici les erreurs courantes dues à la configuration réseau que vous pouvez rencontrer dans l'environnement :

  • Les instances Amazon Elastic Compute Cloud (Amazon EC2) n'ont pas réussi à communiquer avec Elastic Beanstalk. L'échec de communication est dû à des problèmes de configuration avec le VPC ou à une instance EC2 défaillante. Vérifiez la configuration de votre VPC et réessayez de lancer l'environnement.
  • Les instances n'ont pas répondu dans le délai imparti aux commandes.

Résolution

Lorsque vous créez un environnement Elastic Beanstalk totalement privé, assurez-vous de disposer des configurations suivantes :

  • Vous devez avoir un VPC avec au moins deux sous-réseaux privés dans des zones de disponibilité différentes.
  • Les noms d'hôtes DNS et les résolutions DNS doivent être activés sur le VPC. Lorsque ces options sont activées, une entrée DNS est ajoutée à votre VPC qui mappe le point de terminaison du service public au point de terminaison d'un VPC de l'interface.
  • Vous devez créer des points de terminaison d'un VPC afin que les services AWS extérieurs au VPC et l'instance au sein du VPC puissent communiquer à travers eux.

Vérifier les points de terminaison d'un VPC

Pour être créé correctement, un environnement Elastic Beanstalk standard doit disposer des points de terminaison d'un VPC suivants :

  • com.amazonaws.your-region.elasticbeanstalk (point de terminaison de l'interface Elastic Beanstalk)
  • com.amazonaws.your-region.elasticbeanstalk-health (point de terminaison d'état de l'interface Elastic Beanstalk)
  • com.amazonaws.your-region.cloudformation (point de terminaison de l'interface AWS CloudFormation)
  • com.amazonaws.your-region.logs (point de terminaison de l'interface du journal)
  • com.amazonaws.your-region.sqs (point de terminaison de l'interface Amazon Simple Queue Service (Amazon SQS))
  • com.amazonaws.your-region.s3 (point de terminaison de passerelle Amazon Simple Storage Service (Amazon S3))

Les environnements exécutés sur la plate-forme Docker qui s'exécute sur Amazon Linux 2 64 bits doivent disposer des points de terminaison d'un VPC supplémentaires suivants :

  • com.amazonaws.your-region.ecr.dkr
  • com.amazonaws.your-region.ecr.api

Les environnements exécutés sur la plate-forme Amazon Elastic Container Service (Amazon ECS) qui s'exécute sur Amazon Linux 2 64 bits doivent disposer des points de terminaison d'un VPC supplémentaires suivants :

  • com.amazonaws.your-region.ecs
  • com.amazonaws.your-region.ecr.api
  • com.amazonaws.your-region.ecr.dkr

Remarque : pour vous assurer que votre environnement Docker et Multi-Docker fonctionnent correctement, fournissez une image Docker privée.

Vérifier le groupe de sécurité

Lorsque vous créez le point de terminaison VPC de l'interface, vous devez choisir les sous-réseaux et le groupe de sécurité de votre point de terminaison d'un VPC. Assurez-vous de choisir les sous-réseaux privés et le groupe de sécurité avec les règles de trafic entrant appropriées.

Le groupe de sécurité associé aux points de terminaison d'un VPC de l'interface doit disposer d'une règle de trafic entrant pour le port 443 (HTTPS) :

Règle de trafic entrant :

TypeProtocolePlage de portsSource
HTTPSTCP443Adresse IP du client (voir remarque)

Remarque : pour protéger le trafic entrant via le point de terminaison d'un VPC, pensez à spécifier uniquement l'adresse IP ou le réseau du client dans la source.

Vérifiez également que le groupe de sécurité associé à l'instance autorise le trafic HTTP provenant du groupe de sécurité de l'équilibreur de charge :

Règle de trafic entrant :

TypeProtocolePlage de portsSource
HTTPTCP80Groupe de sécurité de l'équilibreur de charge

Vérifiez que le groupe de sécurité associé à l'équilibreur de charge autorise tout le trafic HTTP dans la règle de trafic entrant :

Règle de trafic entrant :

TypeProtocolePlage de portsSource
HTTPTCP800.0.0.0/0

Remarque : il n'est pas nécessaire de restreindre le trafic sortant dans aucun des groupes de sécurité précédents.

Vérifier les entrées de la table de routage

Lorsque vous créez des points de terminaison de passerelle, vous avez la possibilité de choisir une table de routage. Assurez-vous de choisir la table de routage associée au sous-réseau privé du VPC. La table de routage associée au sous-réseau privé doit comporter une route pour chaque point de terminaison d'un VPC de passerelle. Par exemple, vous devez disposer d'une route pour chaque point de terminaison d'un VPC de passerelle associé à Amazon Simple Storage Service (Amazon S3) ou à Amazon DynamoDB.

Entrées de table de routage :

DestinationCible
172.xx.x.0/16local
pl-63a5xxxvpce-04xxx

Vérifier les politiques relatives aux points de terminaison d'un VPC

Les politiques relatives aux points de terminaison d'un VPC doivent permettre à votre environnement Elastic Beanstalk de communiquer en privé avec le service. Lorsque vous créez un point de terminaison d'interface ou de passerelle, vous pouvez associer une politique de point de terminaison. La politique de point de terminaison contrôle quels principaux AWS peuvent utiliser le point de terminaison d'un VPC pour accéder au service de point de terminaison. Les principaux AWS incluent les comptes AWS, les utilisateurs de la Gestion des identités et des accès AWS (AWS IAM) et les rôles IAM. Si vous ne spécifiez aucune politique de point de terminaison lors de la création d'un point de terminaison, ce dernier dispose par défaut d'un accès complet.

Vous trouverez ci-dessous un exemple de politique minimale de point de terminaison d'un VPC de passerelle S3 requise pour un point de terminaison S3 lorsque vous utilisez Elastic Beanstalk.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EBBucketAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject",
                "s3:PutBucketPolicy",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-*",
                "arn:aws:s3:::elasticbeanstalk-*/*",
                "arn:aws:s3:::cloudformation*/*"
            ]
        }
    ]
}

Informations connexes

Accès à un service AWS à l'aide d'un point de terminaison d'un VPC d'interface (français non garanti)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an