Збентежений вимогою ролі ECS


14

Я намагаюся створити ECS, але поки що я зіткнувся з декількома проблемами дозволів, щодо яких я вже створив деякі питання на цьому форумі.

Я думаю, що я до цього часу застряг, бо, чесно кажучи, я не можу чітко виявити всі ці рольові вимоги в одному місці.

Здається, мені потрібно визначити принаймні дві ролі:

1) контейнер ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instan_IAM_role.html

2) Завдання ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#enable_task_iam_roles

Це правильно?

Я щось пропустив? Чи є якась особлива вимога IAM?


Незрозуміло, в чому проблема. Чи можете ви відредагувати своє запитання, щоб включити конкретні дані?
ЄЕАА

Відповіді:


25

Єдина необхідна роль - це роль IAM Container Instance . Ця роль дозволяє агенту ECS (працює на вашому екземплярі EC2) спілкуватися з Amazon ECS.

Є ще п’ять ролей, які також можуть вам бути корисними для різних цілей:

  • Роль, пов'язана зі службою ECS (SLR) - Ця роль дозволяє Amazon ECS управляти різноманітними ресурсами AWS, пов’язаними з вашою програмою від вашого імені. Під час використання сервісу ця роль дозволяє Amazon ECS керувати балансиром навантаження (класичні балансири навантаження, балансирами навантаження додатків та балансирами навантаження на мережу) та виявленням служби ( маршрутом 53 ), пов’язаним із вашою послугою. Використовуючи мережеві завдання , ця роль дозволяє Amazon ECS приєднувати та відключати еластичні мережеві інтерфейси (ENI) до своїх завдань. Ця роль необхідна при використанні AWS Fargate .
  • Роль IAM у планувальника послуг - До введення ролі ECS Service-Linked (SLR) ця роль використовувалася спільно зі службою, щоб Amazon ECS мав можливість керувати балансиром навантаження, пов'язаним з вашою службою. Якщо ви хочете використовувати еластичний балансир навантаження (будь то класичний балансир навантаження, балансир завантаження додатків або балансир навантаження в мережі) для вашої служби ECS, ви можете використовувати цю роль. Тепер, коли доступний дзеркальний дзвінок ECS, ви можете використовувати будь-яку з двох ролей, але ви все одно можете скористатися цією роллю, якщо ви хочете обмежити дозволи, надані Amazon ECS для покриття конкретних ресурсів балансиру навантаження.
  • Роль IAM для автоматичного масштабування - ця роль використовується спільно зі службою і дозволяє сервісу автоматичного масштабування додатків масштабувати бажаний підрахунок вашої послуги у або вимкненому масштабі.
  • Роль завдань IAM - Ця роль може використовуватися з будь-яким завданням (включаючи завдання, запущені службою ). Ця роль дуже схожа на профіль екземпляра EC2 , але дозволяє пов'язувати дозволи з окремими завданнями, а не з базовим екземпляром EC2, який розміщує ці завдання. Якщо ви використовуєте декілька різних програм у вашому кластері ECS з різними необхідними дозволами, ви можете використовувати роль IAM Task для надання конкретних дозволів для кожної задачі, а не гарантувати, що кожен екземпляр EC2 у вашому кластері має комбінований набір дозволів, додаток знадобиться.
  • Роль виконання завдання. Ця роль необхідна при використанні AWS Fargate та заміні ролі IAM Container Instance , яка недоступна для FARGATEтипу запуску. Ця роль дозволяє AWS Fargate витягувати зображення контейнерів з Amazon ECR та пересилати ваші журнали до журналів Amazon CloudWatch . Ця роль також використовується (як для типів запуску Fargate, так і для EC2) для ввімкнення автентичності приватного реєстру та секретів від менеджера секретів AWS та магазину параметрів AWS Systems Manager .

1

На додаток до цього дуже хорошого пояснення @ samuel-karp, сьогодні я зіткнувся з проблемою при переході від класичного ELB до ALB у поєднанні з користувацькими task_role_arnпослугами ECS.

Хоча я дотримувався інструкцій, описаних за посиланням Task IAM role, помилка була

Неможливо взяти на себе роль та перевірити вказану targetGroupArn. Перевірте, чи передана роль служби ECS має належні дозволи.

Вся справа в тому, що сервіс, схоже, зареєструється в балансирі навантаження. Це спрацювало лише тоді, коли я змінив Директора ecs.amazonaws.comна

"Principal": { "Service": "ecs-tasks.amazonaws.com" }

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.