Comment résoudre les problèmes liés aux secrets d’AWS Secrets Manager dans Amazon ECS ?

Lecture de 5 minute(s)
0

Lorsque j'essaie de placer une tâche qui utilise les secrets d’AWS Secrets Manager dans Amazon Elastic Container Services (Amazon ECS), une erreur se produit.

Brève description

Lorsque vous ne parvenez pas à placer une tâche avec un code secret Secrets Manager dans Amazon ECS, il peut se produire l'une des erreurs suivantes :

« ResourceInitializationError error on AWS Fargate AccessDenied error on Amazon Elastic Compute Cloud (Amazon EC2) »

« La tâche ne parvient pas à récupérer les secrets de Secrets Manager. C’est un échec. »

Ces messages d'erreur s'affichent pour l'une des raisons suivantes :

  • La fonction d'exécution des tâches Amazon ECS ne dispose pas des autorisations requises pour accéder aux secrets de Secrets Manager.
  • Secrets Manager ne trouve pas le secret spécifié.
  • Le nom du secret se termine par un trait d'union suivi de six caractères. Ceci renvoie des résultats inattendus lorsque vous recherchez un secret à l'aide d'un ARN partiel.
  • La configuration réseau de votre Amazon Virtual Private Cloud (Amazon VPC) présente des problèmes.

Utilisez le runbook AWSSupport-TroubleshootECSTaskFailedToStart pour résoudre les erreurs liées aux tâches Amazon ECS qui ne démarrent pas. Reportez-vous ensuite aux étapes de résolution des problèmes correspondant à votre problème.

Résolution

Important :

  • Utilisez le runbook AWSSupport-TroubleshootECSTaskFailedToStart dans la même Région AWS où se trouvent les ressources de votre cluster ECS.
  • Lorsque vous utilisez le runbook, vous devez utiliser également l'ID de la dernière tâche ayant échoué. Si la tâche ayant échoué fait partie du service Amazon ECS, utilisez la dernière tâche ayant échoué dans le service. La tâche ayant échoué doit être visible dans ECS:DescribeTasks lors de l'exécution de l'automatisation. Par défaut, les tâches ECS arrêtées sont visibles 1 heure durant, après le passage à l'état Arrêté. L'utilisation du dernier ID de la tâche ayant échoué permet d'éviter que le nettoyage de l'état de la tâche n'interrompe l'analyse pendant l'automatisation.

Consultez des instructions sur la façon de lancer le runbook, consultez la rubrique AWSSupport-TroubleshootECSTaskFailedToStart. En fonction des résultats de l'automatisation, utilisez l'une des étapes suivantes pour la résolution manuelle.

Vérifiez que le rôle d'exécution des tâches ECS dispose des autorisations requises.

  1. Ouvrez la console IAM.
  2. Dans le volet de navigation, choisissez Rôles.
  3. Recherchez dans la liste des rôles le rôle d'exécution des tâches que vos tâches ECS utilisent.
  4. Vérifiez que le rôle d'exécution de la tâche dispose des autorisations requises pour accéder à la ressource Secrets Manager nécessaire.

Vérifiez l’existence du secret de Secrets Manager.

  1. Ouvrez la console Secrets Manager.
  2. Sur la page Liste des secrets, choisissez le secret utilisé par vos tâches ECS.
  3. Vérifiez que votre définition de tâche ECS inclut ces noms secrets spécifiques. Si vous avez spécifié des paramètres supplémentaires dans le secret, vérifiez que la définition de votre tâche inclut json-key/version-stage/version-id spécifié dans le secret.

Vérifiez le nom et l'ARN du secret de Secrets Manager

Vérifiez que votre nom secret se termine par un trait d'union suivi de six caractères (exemple : myappsecret-xxxxxx). Secrets Manager ajoute automatiquement un trait d'union et six caractères aléatoires après le nom secret à la fin de l'ARN. Il est donc recommandé de ne pas terminer votre nom secret par un trait d'union suivi de six caractères. Cela peut renvoyer des résultats inattendus lorsque vous recherchez un secret à l'aide d'un ARN partiel. Pour résoudre ce problème, veillez à utiliser les ARN complets, y compris le trait d'union et les six caractères supplémentaires, des secrets de Secrets Manager.

Vérifiez que la configuration réseau de votre VPC permet à votre infrastructure Amazon ECS d'accéder à Secrets Manager.

Créez les points de terminaison du VPC de l'interface pour Secrets Manager lorsque les conditions suivantes sont remplies :

  • Vous utilisez une définition de tâche qui fait référence aux secrets de Secrets Manager pour récupérer des données sensibles pour vos conteneurs.
  • Vous utilisez des points de terminaison d'un VPC d'interface.

Assurez-vous également que les groupes de sécurité de vos points de terminaison d'un VPC autorisent l'infrastructure ECS à utiliser ces points de terminaison.

Pour vérifier l'existence du point de terminaison d'un VPC pour Secrets Manager, procédez comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, choisissez Points de terminaison.
  3. Assurez-vous que le point de terminaison d'un VPC com.amazonaws.example-region.secretsmanager pour Secrets Manager figure dans la liste des points de terminaison.
  4. Sélectionnez le point de terminaison dans la liste des points de terminaison, puis choisissez l'onglet Sous-réseaux. Assurez-vous que les sous-réseaux de ce point de terminaison incluent ceux utilisés par votre tâche ECS.
    Remarque : Si aucun sous-réseau n'est répertorié, choisissez Gérer les sous-réseaux. Sélectionnez le sous-réseau en fonction de sa Zone de disponibilité, puis choisissez Modifier les sous-réseaux.

Pour vérifier que le groupe de sécurité associé au point de terminaison com.amazonaws.example-region.secretsmanager autorise les connexions entrantes sur le port 443 à partir des tâches Amazon ECS, procédez comme suit :

  1. Sélectionnez le point de terminaison dans la liste des points de terminaison.
  2. Choisissez l'onglet Groupes de sécurité.
  3. Choisissez l'ID de groupe du groupe de sécurité que vous souhaitez vérifier.
  4. Choisissez l'onglet Règles entrantes.
  5. Vérifiez que la liste des règles entrantes inclut une règle qui autorise les connexions 443 à partir de vos tâches ECS.

Informations connexes

Comment transmettre des secrets ou informations sensibles en toute sécurité à des conteneurs dans une tâche Amazon ECS ?

Résolution des problèmes liés à AWS Secrets Manager