2016-02-25 93 views
2

有没有办法在某些IAM角色下运行ECS容器?将IAM角色应用于ECS实例

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

回答

3

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

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

此实例运行ecs代理(随后运行docker)。这种方式的工作方式是在任务运行时,实际容器向/从AWS服务等进行调用。这会吞噬我的主机(代理程序),因为它实际上是控制网络进出Docker容器。现在这种流量现在来自代理。

因此,不能,您无法控制每个容器的IAM角色,您需要通过加入群集的实例(代理程序)来执行此操作。

即,

您加入i-aaaaaaa并且它具有ECS IAM策略+ S3只读到群集。 您加入了i-bbbbbbb,并且它具有ECS IAM策略+ S3读取/写入群集。

您启动需要r/w到S3的任务'c'。你会希望确保它运行在I-BBBBBB

更新:Lyft有一个名为“metadataproxy”号称能解决这个问题,一个开源的东西,但它已经收到了一些安全问题。

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