【问题标题】:Difference between AWS Elastic Container Service's (ECS) ExecutionRole and TaskRoleAWS Elastic Container Service (ECS) 执行角色和任务角色之间的区别
【发布时间】:2018-08-06 13:21:55
【问题描述】:

我正在使用 AWS 的 CloudFormation,最近我花了很多时间试图弄清楚为什么我创建并附加策略的角色无法使我的 ECS 任务向简单队列服务 (SQS ) 队列。

我意识到我错误地将 SQS 权限策略附加到 Execution Role,而我应该将策略附加到 Task Role。我找不到很好的文档来解释这两个角色之间的区别。他们两个的 CloudFormation 文档在这里:ExecutionRoleTaskRole

【问题讨论】:

  • “我最近花了很多时间”的热门歌曲离家太近了! :-)

标签: amazon-web-services amazon-iam amazon-ecs


【解决方案1】:

参考the documentation可以看到,执行角色是IAM角色,执行ECS动作,比如拉取镜像,将应用日志存储到cloudwatch中。

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

使用 TaskRole 在功能上与在容器实例的配置文件中使用访问密钥相同。 以这种方式使用访问密钥是不安全的,并且被认为是非常糟糕的做法。我将这一点包含在答案中,因为许多阅读本文的人已经了解访问密钥。

【讨论】:

  • 无论如何,最佳实践是使用附加的 IAM 角色而不是本地存储的访问密钥。
  • 还有Container Instance Roles。需要注意的重要一点是,您的容器也将自动能够使用这些角色。所以最佳实践是至少拥有容器实例角色,并通过任务角色扩展它(如果需要)。
  • 最佳实践是什么,任务角色和任务执行角色应该是同一个角色还是两个不同的角色?
  • 这是对所描述差异youtube.com/watch?v=nKhtSmYRfxs的一个很好的入门
【解决方案2】:

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

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

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

  • 实际代码运行时

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多