将 IAM 角色应用于 ECS 实例
Posted
技术标签:
【中文标题】将 IAM 角色应用于 ECS 实例【英文标题】:Applying IAM roles to ECS instances 【发布时间】:2016-06-08 09:03:37 【问题描述】:有没有办法在某些 IAM 角色下运行 ECS 容器?
基本上,如果您有一个依赖 IAM 角色来访问 AWS 资源(如 S3 存储桶或 Dynamo 表)的代码/服务器,当您将该代码/服务器作为 ECS 容器运行时,会发生什么情况?你能控制每个容器的角色吗?
【问题讨论】:
【参考方案1】:更新 2:现在任务级别支持角色
更新:Lyft 有一个名为“metadataproxy”的开源项目,声称可以解决这个问题,但收到了一些安全问题。
当您启动容器主机(连接到集群的实例)时,这称为容器实例。
此实例将附加一个 IAM 角色(在指南中,我认为它是 ecsInstanceProfile 的名称)。
此实例运行 ecs 代理(以及随后的 docker)。它的工作方式是当任务运行时,实际的容器调用/从 AWS 服务等。这被我的主机(代理)吞没了,因为它实际上是控制进出 docker 容器的网络。这个流量实际上现在来自代理。
因此,不,您无法在每个容器的基础上控制 IAM 角色,您需要通过加入集群的实例(代理)来控制。
即。
您加入 i-aaaaaaa,它具有 ECS IAM 策略 + S3 只读集群。 您加入 i-bbbbbbb,它具有 ECS IAM 策略 + S3 读/写集群。
您启动了一个需要对 S3 进行读写的任务“c”。您需要确保它在 i-bbbbbb 上运行
【讨论】:
这描述了 Marc 的意思docs.aws.amazon.com/AmazonECS/latest/developerguide/…以上是关于将 IAM 角色应用于 ECS 实例的主要内容,如果未能解决你的问题,请参考以下文章
ECS CLI - 您不能为需要服务相关角色的服务指定 IAM 角色
使用 IAM 角色从 ECS 的 S3 存储桶中提取对象被拒绝访问
Amazon ECS - 在 Docker 入口点上使用 IAM 角色时权限被拒绝