当前位置: 首页 > 知识库问答 >
问题:

AWS弹性容器服务(ECS)ExecutionRole和TaskRole之间的区别

闾丘卓
2023-03-14

我正在使用AWS的云形成,我最近花了相当多的时间试图弄清楚为什么我创建并附加策略的角色没有使我的ECS任务能够将消息发送到简单队列服务(SQS)队列。

我意识到我将SQS权限策略错误地附加到执行角色,而我本应将该策略附加到任务角色。我找不到好的文档来解释这两个角色之间的差异。其中两个的CloudFormation文档位于此处:ExecutionRole和TaskRole

共有2个答案

法和硕
2023-03-14

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

  • 从Amazon ECR中提取容器图像
  • 使用awslogs日志驱动程序

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

  • 当实际代码运行时
耿珂
2023-03-14

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

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

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

 类似资料:
  • 问题内容: 我正在尝试在AWS ECS中设置一个具有相关数据库的基本Web应用程序。在本地,我将这些设置放在不同的容器中,并且在ECS上,我想有单独的任务定义,以便可以分别缩放这两个任务。 我在ECS中成功注册了第一个任务定义。它具有一个命名的容器。 然后,我尝试将第二个任务定义注册为,其中有一个名为的容器,该容器通过链接数据库。 当我单击“创建”时,它返回错误: Linked container

  • 问题内容: 我正在通过docker compose中的选项。显然,您可以从容器或服务导入卷。从docker compose文档中是: volume_from 从另一个服务或容器挂载所有卷,可以选择指定只读访问(ro)或读写(rw)。 注意:仅版本2文件格式支持container:…格式。在版本1中,您可以使用容器名称而无需将其标记为: 我很困惑,这里的容器和服务有什么区别? 问题答案: 服务和容器

  • 我知道ECS有EC2和fargate启动类型,它们对底层环境配置提供的控制不同。

  • 似乎可以根据任务定义运行任务或服务。任务和服务之间有什么区别和相似之处?在创建任务而不是服务时可以指定“任务组”这一事实是否有线索?任务和服务在层次上是任务定义的平等实例,还是服务由任务组成?

  • 我想从Heroku迁移到Amazon AWS,我想在Docker映像中部署我的应用程序。因此该应用程序包括: Web服务器(node.js->docker映像) 工作者(node.js->docker映像) Postgres数据库(Amazon RDS) Redis实例(Amazon Elaticache?) null 现在在研究Amazon文档时,我发现了“弹性豆茎”和“Amazon EC2容器

  • 我不知道缩放机制是如何工作的。例如:我的弹性豆茎环境中有5个docker容器。现在只有第五个docker容器负载很重,因为它有巨量的SQS消息要处理,其他四个几乎是空闲的,因为它们不需要多少CPU,或者可能没有很多SQS消息。让我们假设第5个容器运行一个JBoss应用服务器。据我所知,即使有足够的CPU/内存可用,服务器也只能消耗有限数量的并行请求。 如果JBoss Docker容器无法处理大量的