it-swarm.com.de

Verwirrt durch die Rollenanforderung von ECS

Ich versuche, ein ECS einzurichten, aber bisher bin ich auf einige Berechtigungsprobleme gestoßen, für die ich bereits einige Fragen in diesem Forum erstellt habe.

Ich glaube, ich stecke bisher fest, weil ich ehrlich gesagt nicht alle diese Rollenanforderungen an einem Ort präzise herausfinden kann.

Es scheint, als müsste ich mindestens zwei Rollen definieren:

1) ECS-Container http://docs.aws.Amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

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

Ist es richtig?

Habe ich etwas verpasst? Gibt es spezielle IAM-Anforderungen?

14
Anthony Kong

Die einzig notwendige Rolle ist die Container Instance IAM-Rolle . Diese Rolle ermöglicht es dem ECS-Agenten (der auf Ihrer EC2-Instanz ausgeführt wird), mit Amazon ECS zu kommunizieren.

Es gibt fünf weitere Rollen, die Sie möglicherweise auch für verschiedene Zwecke nützlich finden:

  • ECS Service-Linked-Rolle (SLR) - Mit dieser Rolle kann Amazon ECS eine Vielzahl von AWS-Ressourcen verwalten, die Ihrer Anwendung in Ihrem Namen zugeordnet sind. Bei Verwendung eines Service ermöglicht diese Rolle Amazon ECS die Verwaltung des Load Balancers (Classic Load Balancer, Application Load Balancer und Network Load Balancer) und der Serviceerkennung (mit Route 5 ) mit Ihrem Service verbunden. Bei Verwendung von Task-Netzwerk ermöglicht diese Rolle Amazon ECS, Elastic Network Interfaces (ENIs) an Ihre Aufgaben anzuhängen und zu trennen. Diese Rolle ist erforderlich, wenn AWS Fargate verwendet wird.
  • Service Scheduler IAM-Rolle - Vor der Einführung der ECS Service-Linked-Rolle (SLR) wurde diese Rolle in Verbindung mit einer Service verwendet, damit Amazon ECS die verwalten kann Load Balancer, der Ihrem Service zugeordnet ist. Wenn Sie mit Ihrem ECS-Dienst einen Elastic Load Balancer (ob Classic Load Balancer, Application Load Balancer oder Network Load Balancer) verwenden möchten, können Sie diese Rolle verwenden. Nachdem die ECS-Spiegelreflexkamera verfügbar ist, können Sie eine der beiden Rollen verwenden. Möglicherweise möchten Sie diese Rolle jedoch weiterhin verwenden, wenn Sie die Berechtigungen einschränken möchten, die Amazon ECS für bestimmte Load Balancer-Ressourcen gewährt werden.
  • Auto Scaling IAM-Rolle - Diese Rolle wird in Verbindung mit einem Service verwendet und ermöglicht es dem Application Auto Scaling-Dienst, die gewünschte Anzahl Ihres Service ein- oder auszuschalten.
  • Task-IAM-Rolle - Diese Rolle kann mit jedem Task (einschließlich Aufgaben, die von einem Service gestartet wurden) verwendet werden. Diese Rolle ist einem EC2-Instanzprofil sehr ähnlich, ermöglicht es Ihnen jedoch, Berechtigungen einzelnen Aufgaben zuzuordnen, anstatt der zugrunde liegenden EC2-Instanz, die diese Aufgaben hostet. Wenn Sie in Ihrem ECS-Cluster eine Reihe verschiedener Anwendungen mit unterschiedlichen erforderlichen Berechtigungen ausführen, können Sie mithilfe der Task-IAM-Rolle jeder Task bestimmte Berechtigungen erteilen, anstatt sicherzustellen, dass jede EC2-Instanz in Ihrem Cluster über die kombinierten Berechtigungen verfügt Anwendung würde brauchen.
  • Taskausführungsrolle - Diese Rolle ist erforderlich, wenn AWS Fargate verwendet wird, und ersetzt die IAM-Rolle der Containerinstanz , die für FARGATE Starttyp. Mit dieser Rolle kann AWS Fargate Ihre Container-Images von Amazon ECR abrufen und Ihre Protokolle an Amazon CloudWatch Logs weiterleiten. Diese Rolle wird auch verwendet (sowohl beim Fargate- als auch beim EC2-Starttyp), um private Registrierungsauthentifizierung und Geheimnisse aus AWS Secrets Manager und AWS Systems Manager-Parameterspeicher zu aktivieren.
26
Samuel Karp

Zusätzlich zu dieser sehr guten Erklärung von @ samuel-karp stieß ich heute auf ein Problem bei der Migration von klassischem ELB zu ALB in Kombination mit benutzerdefiniertem task_role_arn für ECS-Dienste.

Obwohl ich den Anweisungen gefolgt bin, die hinter dem Link Task IAM role war der Fehler

Rolle kann nicht übernommen und die angegebene targetGroupArn nicht überprüft werden. Stellen Sie sicher, dass die übergebene ECS-Servicerolle über die richtigen Berechtigungen verfügt.

Die Sache ist, dass sich der Dienst am Load Balancer zu registrieren scheint. Es hat nur funktioniert, als ich den Auftraggeber von ecs.amazonaws.com bis

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

1
mana