web-dev-qa-db-fra.com

Différence entre le rôle d'exécution AWS Elastic Container Service (ECS) et le rôle de tâche

J'utilise CloudFormation d'AWS, et j'ai récemment passé pas mal de temps à essayer de comprendre pourquoi le rôle que j'avais créé et auquel j'avais attaché des stratégies ne permettait pas à ma tâche ECS d'envoyer un message à une file d'attente SQS (Simple Queue Service).

J'ai réalisé que j'attachais de manière incorrecte la stratégie d'autorisations SQS au Execution Role alors que j'aurais dû attacher la politique au Task Role. Je ne trouve pas de bonne documentation qui explique la différence entre les deux rôles. La documentation CloudFormation pour les deux d'entre eux est ici: ExecutionRole et TaskRole

25
johnklawlor

En vous référant à la documentation , vous pouvez voir que le rôle d'exécution est le rôle IAM qui exécute des actions ECS telles que l'extraction de l'image et le stockage des journaux d'application dans cloudwatch.

Le TaskRole est alors le rôle IAM utilisé par la tâche elle-même. Par exemple, si votre conteneur souhaite appeler d'autres services AWS comme S3, SQS, etc., ces autorisations doivent être couvertes par le TaskRole.

Juste pour ramener le point d'origine, vous pouvez utiliser des clés d'accès dans un fichier de configuration sur l'instance de conteneur au lieu du TaskRole.

29
mehtunguh