Я пытаюсь настроить ECS, но пока что столкнулся с несколькими проблемами с разрешениями, по которым я уже создал несколько вопросов на этом форуме.
Я думаю, что застрял так далеко, потому что, честно говоря, я не могу найти все эти ролевые требования в одном месте.
Похоже, мне нужно определить как минимум две роли:
1) Контейнер ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html
2) Задача ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#enable_task_iam_roles
Это правильно?
Я что-то пропустил? Есть ли какие-то особые требования к IAM?
Единственная необходимая роль - это Роль IAM для экземпляра контейнера. Эта роль позволяет агенту ECS (работающему на вашем инстансе EC2) связываться с Amazon ECS.
Есть еще пять ролей, которые могут оказаться полезными для различных целей:
FARGATE
тип запуска. Эта роль позволяет AWS Fargate извлекать образы контейнеров из Amazon ECR и переслать ваши журналы на Журналы Amazon CloudWatch. Эта роль также используется (для типов запуска Fargate и EC2) для включения аутентификация в частном реестре и секреты из AWS Secrets Manager и AWS Systems Manager Parameter Store.Помимо этого очень хорошего объяснения @ samuel-karp, сегодня я столкнулся с проблемой при переходе с классического ELB на ALB в сочетании с настраиваемыми task_role_arn
для сервисов ECS.
Хотя я следовал инструкциям, описанным за ссылкой Task IAM role
, Ошибка была
Невозможно принять роль и проверить указанный targetGroupArn. Убедитесь, что переданная роль службы ECS имеет необходимые разрешения.
Дело в том, что сервис вроде как регистрируется на балансировщике нагрузки. Это сработало только тогда, когда я обменял Принципала с ecs.amazonaws.com
к
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
}