将 IAM 角色应用到 ECS 实例

Applying IAM roles to ECS instances

有没有办法在某些 IAM 角色下 运行 ECS 容器?

基本上,如果您的代码/服务器依赖于 IAM 角色来访问 AWS 资源(如 S3 存储桶或 Dynamo 表),当您 运行 该代码/服务器作为 ECS 容器时,会发生什么?你能控制每个容器的角色吗?

更新 2:任务级别现在支持角色

更新:Lyft 有一个名为 'metadataproxy' 的开源项目,它声称可以解决这个问题,但收到时存在一些安全问题。

当您启动容器主机(连接到您的集群的实例)时,这称为容器实例。

此实例将附加一个 IAM 角色(在指南中我认为它是 ecsInstanceProfile 的名称)。

此实例 运行 是 ecs 代理(随后 docker)。它的工作方式是当任务是 运行 时,实际容器调用 to/from AWS 服务等。这被我的主机(代理)吞没了,因为它实际上控制着网络 in/out docker 个容器。现在这个流量实际上是来自代理。

所以不,您不能在每个容器的基础上控制 IAM 角色,您需要通过加入集群的实例(代理)来做到这一点。

即。

您加入 i-aaaaaaa,它具有 ECS IAM 策略 + S3 只读集群。 您加入 i-bbbbbbb,它具有 ECS IAM 策略 + S3 read/write 集群。

您启动了一项需要 r/w 到 S3 的任务 'c'。您需要确保它 运行 在 i-bbbbbb