Passer au contenu

Comment puis-je résoudre les problèmes de connexion entre ma tâche Fargate et d'autres services AWS ?

Lecture de 6 minute(s)
0

Je souhaite résoudre les problèmes de connexion entre ma tâche AWS Fargate et un autre service AWS.

Brève description

Les applications qui s'exécutent dans le cadre d'une tâche Fargate avec Amazon Elastic Container Service (Amazon ECS) peuvent ne pas accéder aux autres services AWS pour les raisons suivantes :

  • Autorisations AWS Identity and Access Management (IAM) insuffisantes
  • Routes de sous-réseau incorrectes
  • Restrictions relatives à la liste de contrôle d'accès au réseau (ACL réseau)
  • Règles de groupe de sécurité incorrectes
  • Configurations de points de terminaison Amazon Virtual Private Cloud (Amazon VPC) incorrectes

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.

Configurer et utiliser ECS Exec

Utilisez ECS Exec pour interagir avec le conteneur d'applications de votre tâche Fargate. Respectez les prérequis pour utiliser ECS Exec. Puis, activez ECS Exec pour votre tâche Fargate.

Si votre conteneur d'applications ne prend pas en charge les sessions shell pour exécuter ECS Exec, utilisez une image Docker aws-cli pour créer une nouvelle tâche Fargate. La nouvelle tâche doit se trouver dans le même sous-réseau et le même VPC que votre tâche Fargate actuelle.

Configurer les connexions entre Amazon ECS et les autres points de terminaison de service AWS

Si vos tâches Amazon ECS ne parviennent pas à se connecter à d'autres services, vérifiez que vous remplissez les conditions suivantes :

  • L'URL du point de terminaison est correcte, y compris le protocole (http:// ou https://), le nom d'hôte et le port. Configurez vos points de terminaison de VPC avec des sous-réseaux qui correspondent à la configuration du sous-réseau de votre service Amazon ECS.
  • Les sous-réseaux utilisés par votre service Amazon ECS doivent disposer des configurations DNS appropriées pour résoudre les URL de vos points de terminaison, qu'il s'agisse d'un DNS fourni par Amazon ou d'un résolveur personnalisé.
  • Le groupe de sécurité associé à vos tâches Amazon ECS doit autoriser l'accès sortant au port et au protocole du service de destination.
  • Les listes de contrôle d'accès réseau (ACL) du sous-réseau doivent autoriser le trafic à destination et en provenance des points de terminaison de service requis.

Tester la connexion entre votre tâche Fargate et le point de terminaison du service AWS

Pour tester la connexion de votre tâche Fargate à votre point de terminaison et à votre port de service AWS, exécutez la commande telnet suivante depuis votre conteneur :

telnet endpoint-url port

Remarque : Dans la commande précédente, remplacez endpoint-url par l’URL du point de terminaison de votre service et port par le numéro de port du service.

Si la connexion est établie, vous obtenez l'exemple de sortie suivant :

Trying 10.0.1.169...  
Connected to sns.us-east-1.amazonaws.com.  
Escape character is '^]'.

Pour tester la résolution DNS de votre point de terminaison, exécutez la commande nslookup suivante :

nslookup example-endpoint

Exemple de sortie :

Name: sns.us-east-1.amazonaws.com  
Address: 10.0.1.169

Si vous n'avez pas installé les commandes telnet ou nslookup dans votre conteneur, exécutez l'une des commandes suivantes pour les installer.

Conteneurs basés sur Debian :

apt-get update
apt-get install -y dnsutils telnet

Conteneurs Amazon Linux :

yum install -y bind-utils telnet

Résoudre les erreurs de délai de connexion

Si vous recevez des erreurs de délai d’attente de connexion, vérifiez la configuration de votre réseau.

Règles du groupe de sécurité

Si le trafic passe par un point de terminaison de VPC, le groupe de sécurité du point de terminaison doit autoriser le trafic TCP sur le port 443 depuis l'un des points de terminaison suivants :

  • Le groupe de sécurité de la tâche Amazon ECS
  • Le bloc CIDR du VPC

Configurez le groupe de sécurité de la tâche pour autoriser le trafic sortant vers le point de terminaison de VPC du service.

Routage VPC

Pour les sous-réseaux publics, la tâche Fargate doit avoir une route par défaut 0.0.0.0/0 qui pointe vers la passerelle Internet.

Pour les sous-réseaux privés, la table de routage doit comporter une route vers une passerelle NAT ou une passerelle de transit en fonction de votre architecture.

Paramètres du proxy

Si votre tâche Amazon ECS utilise un serveur proxy, assurez-vous que la configuration du proxy autorise le trafic vers votre point de terminaison de service.

Analyser les journaux de flux VPC

Si vous rencontrez toujours des problèmes de connexion, utilisez Amazon VPC Flow Logs pour consulter les détails du flux de trafic.

Résoudre les problèmes liés aux autorisations IAM

Vérifiez si le rôle de tâche Amazon ECS autorise le conteneur d'applications à interagir avec d'autres services AWS.

Par exemple, les erreurs suivantes peuvent s'afficher lorsque vous tentez de vous connecter à un point de terminaison Amazon Simple Notification Service (Amazon SNS).

Exemple de message d'erreur concernant la politique de point de terminaison du VPC :

« An error occurred (AuthorizationError) when calling the ListTopics operation: User: arn:aws:sts::123456789012:assumed-role/TaskRole/123456789012 is not authorized to perform: SNS:ListTopics on resource: arn:aws:sns:region-name:123456789012:* with an explicit deny in a VPC endpoint policy »

Pour résoudre ce problème, accordez au point de terminaison de VPC Amazon l'autorisation d'effectuer les actions nécessaires sur vos services AWS. Dans l'exemple de message d'erreur précédent, le point de terminaison de VPC Amazon doit disposer de l'autorisation ListTopics.

Exemple de message d'erreur d'autorisation de rôle de tâche :

« An error occurred (AuthorizationError) when calling the ListTopics operation: User: arn:aws:sts::123456789012:assumed-role/TaskRole/123456789012 is not authorized to perform: SNS:ListTopics on resource: arn:aws:sns:region-name:123456789012:* because no identity-based policy allows the SNS:ListTopics action »

Pour résoudre ce problème, accordez au rôle IAM de la tâche Amazon ECS les autorisations nécessaires pour effectuer les actions nécessaires auprès des services destinataires. Dans l'exemple de message d'erreur précédent, le rôle IAM doit disposer de l'autorisation ListTopics.

AWS OFFICIELA mis à jour il y a 10 mois