Mylić z wymogiem roli ECS

14

Próbuję skonfigurować ECS, ale do tej pory napotkałem kilka problemów z uprawnieniami, dla których już utworzyłem kilka pytań na tym forum.

Myślę, że do tej pory utknąłem, ponieważ szczerze mówiąc, nie jestem w stanie zwięźle znaleźć wszystkich wymagań dotyczących roli w jednym miejscu.

Wygląda na to, że muszę zdefiniować co najmniej dwie role:

1) Kontener ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

2) Zadanie ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#enable_task_iam_roles

Czy to jest poprawne?

Czy coś przegapiłem? Czy są jakieś specjalne wymagania dotyczące IAM?

Anthony Kong
źródło
Nie jest jasne, na czym polega problem. Czy możesz edytować swoje pytanie, aby uwzględnić szczegóły?
EEAA

Odpowiedzi:

25

Jedyną niezbędną rolą jest rola IAM wystąpienia kontenera . Ta rola pozwala agentowi ECS (działającemu na instancji EC2) komunikować się z Amazon ECS.

Istnieje pięć innych ról, które mogą być również przydatne do różnych celów:

  • Rola związana z usługą ECS (SLR) - Ta rola umożliwia Amazon ECS zarządzanie w Twoim imieniu różnorodnymi zasobami AWS powiązanymi z Twoją aplikacją. Podczas korzystania z usługi ta rola umożliwia Amazon ECS zarządzanie modułem równoważącym obciążenie (klasyczne moduły równoważące, moduły równoważące obciążenie aplikacji i równoważącym obciążenie sieciowe) oraz wykrywanie usługi (z trasą 53 ) związaną z usługą. Podczas korzystania z sieci zadań ta rola umożliwia Amazon ECS dołączanie i odłączanie elastycznych interfejsów sieciowych (ENI) do twoich zadań. Ta rola jest wymagana podczas korzystania z AWS Fargate .
  • Rola IAM programu planującego usługi - Przed wprowadzeniem roli ECS Service-Linked (SLR), rola ta była używana w połączeniu z usługą, aby umożliwić Amazon ECS zarządzanie modułem równoważącym obciążenie związanym z twoją usługą. Jeśli chcesz korzystać z usługi elastycznego równoważenia obciążenia (klasycznego równoważenia obciążenia, równoważenia obciążenia aplikacji lub równoważenia obciążenia sieciowego) z usługą ECS, możesz użyć tej roli. Teraz, gdy dostępna jest lustrzanka ECS, możesz używać jednej z dwóch ról, ale nadal możesz chcieć skorzystać z tej roli, jeśli chcesz ograniczyć uprawnienia przyznane Amazon ECS na pokrycie określonych zasobów modułu równoważenia obciążenia.
  • Rola automatycznego skalowania IAM - ta rola jest używana w połączeniu z usługą i umożliwia usłudze automatycznego skalowania aplikacji skalowanie żądanej liczby usług do wewnątrz lub na zewnątrz.
  • Rola zadania IAM - tej roli można używać z dowolnym zadaniem (w tym zadaniami uruchamianymi przez usługę ). Ta rola jest bardzo podobna do profilu instancji EC2 , ale pozwala powiązać uprawnienia z poszczególnymi zadaniami, a nie z bazową instancją EC2, która obsługuje te zadania. Jeśli uruchamiasz wiele różnych aplikacji w klastrze ECS z różnymi wymaganymi uprawnieniami, możesz użyć roli Zadanie IAM, aby udzielić określonych uprawnień do każdego zadania, zamiast upewniać się, że każda instancja EC2 w klastrze ma połączony zestaw uprawnień, które dowolne aplikacja będzie potrzebować.
  • Rola wykonania zadania - ta rola jest wymagana podczas korzystania z AWS Fargate i zastępuje rolę IAM wystąpienia kontenera , która jest niedostępna dla FARGATEtypu uruchamiania. Ta rola umożliwia AWS Fargate pobieranie obrazów kontenerów z Amazon ECR i przekazywanie dzienników do dzienników Amazon CloudWatch . Rola ta jest również stosowana (zarówno na Fargate i typami nośnych EC2), aby umożliwić prywatnym uwierzytelnienia rejestru i tajemnice z AWS Secrets Manager i AWS Systems Menedżer parametrów Store .
Samuel Karp
źródło
1

Oprócz tego bardzo dobrego wyjaśnienia @ samuel-karp, dzisiaj napotkałem problem podczas migracji z klasycznego ELB do ALB w połączeniu z niestandardowymi task_role_arndla usług ECS.

Chociaż postępowałem zgodnie z instrukcjami opisanymi za linkiem Task IAM role, błąd był

Nie można przyjąć roli i sprawdzić poprawności określonego targetGroupArn. Sprawdź, czy przekazywana rola usługi ECS ma odpowiednie uprawnienia.

Chodzi o to, że usługa rejestruje się w module równoważenia obciążenia. Działało to tylko wtedy, gdy wymieniłem dyrektora z ecs.amazonaws.comna

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

mana
źródło