2016-02-25 95 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:任務級別現在支持角色