AWS Elastic Container Service(ECS)ExecutionRole和TaskRole之间的区别

joh*_*lor 26 amazon-web-services amazon-ecs amazon-iam

我正在使用AWS的CloudFormation,最近我花了很多时间试图找出我创建的角色和附加策略的原因是没有启用我的ECS任务将消息发送到简单队列服务(SQS)队列.

我意识到我错误地将SQS权限策略附加到Execution Role我应该将策略附加到的时间Task Role.我找不到解释这两个角色之间差异的好文档.其中两个的CloudFormation文档位于:ExecutionRoleTaskRole

meh*_*guh 33

参考文档, 您可以看到执行角色是执行ECS操作的IAM角色,例如拉动映像并将应用程序日志存储在cloudwatch中.

然后,TaskRole是任务本身使用的IAM角色.例如,如果您的容器想要调用其他AWS服务(如S3,SQS等),那么TaskRole需要覆盖这些权限.

只是为了将点驱动回家,您可以在容器实例上的配置文件中使用访问键而不是TaskRole.

  • 无论如何,最佳实践是使用附加的IAM角色而不是本地存储的访问密钥。 (3认同)
  • 还有[容器实例角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html)。需要注意的重要一点是,您的容器也将自动能够使用这些角色。因此,最佳实践是至少拥有容器实例角色,并通过任务角色对其进行扩展(如果需要)。 (2认同)

小智 12

ECS任务执行角色是ECS代理(和容器实例)的能力,例如:

  • 从 Amazon ECR 拉取容器镜像
  • 使用 awslogs 日志驱动程序

ECS 任务角色是任务本身的特定能力,例如:

  • 当您的实际代码运行时