IAM-Rolle zur Ausführung von Amazon-EKS-pod - Amazon EKS

IAM-Rolle zur Ausführung von Amazon-EKS-pod

Die Amazon-EKS-pod-Ausführungsrolle ist erforderlich, um pods in der AWS Fargate-Infrastruktur auszuführen.

Wenn Ihr Cluster pods in der AWS Fargate-Infrastruktur erstellt, müssen die Komponenten, die in der Fargate-Infrastruktur ausgeführt werden, in Ihrem Namen Aufrufe an AWS-APIs senden. Auf diese Weise können sie Aktionen wie das Abrufen von Container-Images aus Amazon ECR oder das Weiterleiten von Protokollen an andere AWS-Services durchführen. Die Amazon-EKS-pod-Ausführungsrolle stellt die entsprechenden IAM-Berechtigungen bereit.

Wenn Sie ein Fargate-Profil erstellen, müssen Sie eine pod-Ausführungsrolle für die Amazon-EKS-Komponenten angeben, die auf der Fargate-Infrastruktur mit dem Profil ausgeführt werden. Diese Rolle wird zur rollenbasierten Kubernetes-Zugriffssteuerung (RBAC) des Clusters zur Autorisierung hinzugefügt. Auf diese Weise kann sich das kubelet, das in der Fargate-Infrastruktur ausgeführt wird, bei Ihrem Amazon-EKS-Cluster registrieren, sodass es als Knoten in Ihrem Cluster angezeigt werden kann.

Anmerkung

Das Fargate-Profil muss eine andere IAM-Rolle als Amazon-EC2-Knotengruppen haben.

Wichtig

Die im Fargate-pod ausgeführten Container können nicht die IAM-Berechtigungen annehmen, die einer pod-Ausführungsrolle zugeordnet sind. Um den Containern in Ihrem Fargate-pod Berechtigungen für den Zugriff auf andere AWS-Dienste zu erteilen, müssen Sie IAM-Rollen für Servicekonten verwenden.

Bevor Sie ein Fargate-Profil erstellen, müssen Sie eine IAM-Rolle mit AmazonEKSFargatePodExecutionRolePolicy erstellen.

Auf eine korrekt konfigurierte pod-Ausführungsrolle prüfen

Mit dem folgenden Verfahren können Sie feststellen, ob Ihr Konto bereits über eine korrekt konfigurierte Amazon-EKS-pod-Ausführungsrolle verfügt. Um Confused-Deputy-Sicherheitsprobleme zu vermeiden, ist es wichtig, dass die Rolle den Zugriff basierend auf SourceArn beschränkt. Sie können die Ausführungsrolle nach Bedarf ändern, um Fargate-Profile auch auf anderen Clustern zu unterstützen.

Nach einer Amazon-EKS-pod-Ausführungsrolle in der IAM-Konsole suchen

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Suchen Sie in der Rollenliste auf der Seite Roles (Rollen) nach AmazonEKSFargatePodExecutionRole. Wenn die Rolle nicht vorhanden ist, finden Sie unter Erstellen der Amazon-EKS-pod-Ausführungsrolle Informationen zum Erstellen der Rolle. Wenn die Rolle vorhanden ist, wählen Sie sie aus.

  4. Nehmen Sie auf der Seite AmazonEKSFargatePodExecutionRole folgende Änderungen vor:

    1. Wählen Sie Permissions (Berechtigungen).

    2. Stellen Sie sicher, dass die von Amazon verwaltete Richtlinie AmazonEKSFargatePodExecutionRolePolicy an die Rolle angehängt ist.

    3. Wählen Sie Trust Relationships (Vertrauensbeziehungen) aus.

    4. Wählen Sie Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  5. Prüfen Sie auf der Seite Edit trust policy (Vertrauensrichtlinie bearbeiten), dass die Vertrauensbeziehung die folgende Richtlinie und eine Zeile für Fargate-Profile in Ihrem Cluster enthält. Wenn ja, wählen Sie Cancel (Abbrechen) aus.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Wenn die Richtlinie übereinstimmt, aber keine Zeile mit den Fargate-Profilen in Ihrem Cluster enthält, können Sie die folgende Zeile oben im ArnLike-Objekt hinzufügen. Ersetzen Sie region-code durch die AWS-Region, in der sich Ihr Cluster befindet, 111122223333 durch die ID Ihres Kontos und my-cluster durch den Namen Ihres Clusters.

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    Wenn die Richtlinie nicht übereinstimmt, kopieren Sie die vollständige vorherige Richtlinie in das Formular und wählen Sie Update policy (Richtlinie aktualisieren) aus. Ersetzen Sie region-code durch die AWS-Region, in der sich Ihr Cluster befindet. Wenn Sie in allen AWS-Regionen in Ihrem Konto die gleiche Rolle verwenden möchten, ersetzen Sie region-code durch *. Ersetzen Sie 111122223333 durch Ihre Konto-ID und my-cluster durch den Namen Ihres Clusters. Wenn Sie dieselbe Rolle für alle Cluster in Ihrem Konto verwenden möchten, ersetzen Sie my-cluster durch *.

Erstellen der Amazon-EKS-pod-Ausführungsrolle

Wenn Sie noch keine Amazon-EKS-pod-Ausführungsrolle für Ihren Cluster haben, können Sie über die AWS Management Console oder die AWS CLI eine erstellen.

AWS Management Console

So erstellen Sie eine AWS Fargate-Pod-Ausführungsrolle mit dem AWS Management Console

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Klicken Sie auf der Seite Roles (Rollen) auf Create role (Rolle erstellen).

  4. Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:

    1. Wählen Sie im Abschnitt Trusted entity type (Typ der vertrauenswürdigen Entität) die Option AWS service (-Service) aus.

    2. Wählen Sie in der Dropdown-Liste Use cases for other AWS-Services (Anwendungsfälle für andere ) die Option EKS aus.

    3. Wählen Sie EKS - Fargate-pod aus.

    4. Wählen Sie Next (Weiter).

  5. Wählen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) die Option Next (Weiter) aus.

  6. Gehen Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) wie folgt vor:

    1. Geben Sie unter Role name (Rollenname) einen eindeutigen Namen für die Rolle ein, z. B. AmazonEKSFargatePodExecutionRole.

    2. Fügen Sie der Rolle unter Add tags (Optional) (Tags hinzufügen (optional)) Metadaten hinzu, indem Sie Tags als Schlüssel-Wert-Paare anfügen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Tagging von IAM-Entitäten im IAM-Benutzerhandbuch.

    3. Wählen Sie Create role (Rolle erstellen) aus.

  7. Suchen Sie in der Rollenliste auf der Seite Roles (Rollen) nach AmazonEKSFargatePodExecutionRole. Wählen Sie die Rolle aus.

  8. Nehmen Sie auf der Seite AmazonEKSFargatePodExecutionRole folgende Änderungen vor:

    1. Wählen Sie Trust Relationships (Vertrauensbeziehungen) aus.

    2. Wählen Sie Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  9. Führen Sie auf der Seite Edit trust policy (Vertrauensrichtlinie bearbeiten) die folgenden Schritte aus:

    1. Kopieren Sie die folgenden Inhalte in das Formular unter Edit trust policy (Vertrauensrichtlinie bearbeiten). Ersetzen Sie region-code durch die AWS-Region, in der sich Ihr Cluster befindet. Wenn Sie in allen AWS-Regionen in Ihrem Konto die gleiche Rolle verwenden möchten, ersetzen Sie region-code durch *. Ersetzen Sie 111122223333 durch Ihre Konto-ID und my-cluster durch den Namen Ihres Clusters. Wenn Sie dieselbe Rolle für alle Cluster in Ihrem Konto verwenden möchten, ersetzen Sie my-cluster durch *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Wählen Sie Update policy.

AWS CLI

So erstellen Sie eine AWS Fargate-Pod-Ausführungsrolle mit dem AWS CLI

  1. Kopieren Sie den folgenden Inhalt in eine Datei namens pod-execution-role-trust-policy.json. Ersetzen Sie region-code durch die AWS-Region, in der sich Ihr Cluster befindet. Wenn Sie in allen AWS-Regionen in Ihrem Konto die gleiche Rolle verwenden möchten, ersetzen Sie region-code durch *. Ersetzen Sie 111122223333 durch Ihre Konto-ID und my-cluster durch den Namen Ihres Clusters. Wenn Sie dieselbe Rolle für alle Cluster in Ihrem Konto verwenden möchten, ersetzen Sie my-cluster durch *.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen einer IAM-pod-Ausführungsrolle

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. Hängen Sie die erforderliche von Amazon EKS verwaltete IAM-Richtlinie an die Rolle an.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole