2016-11-28 37 views
1

如果我使用ECS容器內的aws cli,則看起來應該按照它應該的方式應用連接到ECS實例角色的IAM策略,但任務角色IAM政策根本不使用。任務/容器內的AWS cli使用實例角色策略而不是任務角色

場景:

aws s3 cp local/file s3://remotebucket 

S3 PutObject政策附加到任務角色,不是實例角色 - 拒絕訪問

S3 PutObject政策附加到實例的角色,而不是任務角色 - 成功

我的理解IAM的任務是容器繼承實例角色,還包括來自任務角色的策略?我如何才能獲得第一個場景? http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html

+0

遇到同樣的問題。你有沒有找到這個解決方案?從我所知道的情況來看,AWS CLI需要從EC2實例中承擔角色。 –

回答

2

在這一天敲了一下腦後,事實證明這個問題是由過時的AWS CLI引起的。 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#task-iam-roles-minimum-sdk

在我的情況下,我安裝了安裝版本1.4.2的apt-get install aws-cli aws-cli。此版本不處理獲取正確IAM所需的AWS_CONTAINER_CREDENTIALS_RELATIVE_URI環境變量。所以它默認獲取實例的IAM。

解決方案是通過pip或捆綁安裝來安裝AWS CLI,以確保我擁有最新版本。這同樣適用於AWS軟件開發工具包 - 所需版本在上面的鏈接中進行了介紹。