2016-11-28 15 views
1

Если я использую aws cli из контейнера в ECS, то оказывается, что политика IAM, прикрепленная к роли экземпляра ECS, применяется так, как должна, но роль задачи Политика 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

Выполнение этой же проблемы. Вы когда-нибудь находили решение для этого? Из того, что я могу сказать, CLI AWS должен взять на себя роль из экземпляров EC2. –

ответ

2

После того, как я ударил головой об этом в течение дня, выясняется, что проблема вызвана устаревшим AWS CLI. http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#task-iam-roles-minimum-sdk

В моем случае я устанавливал aws-cli с apt-get install aws-cli, который устанавливает версию 1.4.2. Эта версия не обрабатывает переменную окружения AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, необходимую для получения правильной IAM. Таким образом, он по умолчанию получает экземпляр IAM.

Решение заключалось в том, чтобы установить AWS CLI через pip или комплектную установку, чтобы убедиться, что у меня установлена ​​последняя версия. То же самое относится к SDK AWS - требуемые версии описаны в приведенной выше ссылке.