IAM-Rolle für Amazon EKS-Funktionen - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

IAM-Rolle für Amazon EKS-Funktionen

EKS-Funktionen erfordern die Konfiguration einer Capability-IAM-Rolle (oder Fähigkeitsrolle). Capabilities verwenden diese Rolle, um Aktionen für AWS Dienste auszuführen und über automatisch erstellte Zugriffseinträge auf Kubernetes-Ressourcen in Ihrem Cluster zuzugreifen.

Bevor Sie bei der Funktionserstellung eine Funktionsrolle angeben können, müssen Sie die IAM-Rolle mit den entsprechenden Vertrauensrichtlinien und Berechtigungen für den Funktionstyp erstellen. Sobald diese IAM-Rolle erstellt wurde, kann sie für eine beliebige Anzahl von Funktionsressourcen wiederverwendet werden.

Anforderungen an die Rolle der Fähigkeit

Die Fähigkeitsrolle muss die folgenden Anforderungen erfüllen:

  • Die Rolle muss sich in demselben AWS Konto befinden wie der Cluster und die Capability-Ressource

  • Die Rolle muss über eine Vertrauensrichtlinie verfügen, die es dem EKS-Capabilities-Service ermöglicht, die Rolle zu übernehmen

  • Die Rolle muss über Berechtigungen verfügen, die dem Funktionstyp und den Anforderungen des Anwendungsfalls entsprechen (sieheBerechtigungen nach Funktionstyp)

Vertrauensrichtlinie für Funktionsrollen

Alle Funktionsrollen müssen die folgende Vertrauensrichtlinie beinhalten:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

Diese Vertrauensrichtlinie ermöglicht EKS:

  • Übernehmen Sie die Rolle zur Durchführung von AWS API-Vorgängen

  • Taggen Sie Sitzungen zu Prüf- und Nachverfolgungszwecken

Berechtigungen nach Funktionstyp

Die erforderlichen IAM-Berechtigungen hängen davon ab, welche Funktion Sie verwenden und welches Bereitstellungsmodell Sie verwenden.

Anmerkung

Bei Produktionsbereitstellungen, bei denen IAM-Rollenselektoren mit ACK verwendet werden, oder bei Verwendung von Kro- oder Argo-CD ohne AWS Serviceintegration sind für die Capability Role möglicherweise keine IAM-Berechtigungen erforderlich, die über die Vertrauensrichtlinie hinausgehen.

kro (Kube Resource Orchestrator)

Es sind keine IAM-Berechtigungen erforderlich. Sie können eine Funktionsrolle ohne angehängte Richtlinien erstellen. kro benötigt lediglich Kubernetes-RBAC-Berechtigungen, um Kubernetes-Ressourcen zu erstellen und zu verwalten.

AWS Controller für Kubernetes (ACK)

ACK unterstützt zwei Berechtigungsmodelle:

  • Einfache Einrichtung (Entwicklung/Testen): Fügen Sie AWS Dienstberechtigungen direkt zur Capability-Rolle hinzu. Dies eignet sich gut für den Einstieg, für Bereitstellungen mit einem Konto oder wenn alle Benutzer dieselben Berechtigungen benötigen.

  • Bewährte Methode für die Produktion: Verwenden Sie IAM-Rollenselektoren, um den Zugriff mit den geringsten Rechten zu implementieren. Bei diesem Ansatz benötigt die Capability-Rolle nur die sts:AssumeRole Erlaubnis, dienstspezifische Rollen anzunehmen. Sie fügen der Capability-Rolle selbst keine AWS Dienstberechtigungen (wie S3 oder RDS) hinzu — diese Berechtigungen werden einzelnen IAM-Rollen gewährt, die bestimmten Namespaces zugeordnet sind.

    IAM-Rollenselektoren ermöglichen:

    • Isolierung von Berechtigungen auf Namespace-Ebene

    • Kontoübergreifende Ressourcenverwaltung

    • Teamspezifische IAM-Rollen

    • Sicherheitsmodell mit den geringsten Rechten

      Beispiel für eine Capability Role Policy für den IAM Role Selector-Ansatz:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::111122223333:role/ACK-S3-Role", "arn:aws:iam::111122223333:role/ACK-RDS-Role", "arn:aws:iam::444455556666:role/ACKCrossAccountRole" ] } ] }

      Eine ausführliche Konfiguration der ACK-Berechtigungen einschließlich IAM-Rollenselektoren finden Sie unter. ACK-Berechtigungen konfigurieren

Argo-CD

Standardmäßig sind keine IAM-Berechtigungen erforderlich. Optionale Berechtigungen können erforderlich sein für:

  • AWS Secrets Manager: Wenn Sie Secrets Manager zum Speichern von Git-Repository-Anmeldeinformationen verwenden

  • AWS CodeConnections: Bei Verwendung CodeConnections für die Git-Repository-Authentifizierung

    Beispielrichtlinie für Secrets Manager und CodeConnections:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*" }, { "Effect": "Allow", "Action": [ "codeconnections:UseConnection", "codeconnections:GetConnection" ], "Resource": "arn:aws:codeconnections:region:account-id:connection/*" } ] }

    Ausführliche Informationen zu den Argo-CD-Genehmigungsanforderungen finden Sie unterÜberlegungen zu Argo CD.

Suchen Sie nach einer vorhandenen Capability-Rolle

Sie können das folgende Verfahren verwenden, um zu überprüfen, ob Ihr Konto bereits über eine IAM-Rolle verfügt, die für Ihren Anwendungsfall geeignet ist.

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

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

  3. Suchen Sie in der Rollenliste nach dem Namen Ihrer Capability-Rolle (z. B. ACKCapabilityRole oderArgoCDCapabilityRole).

  4. Wenn eine Rolle vorhanden ist, wählen Sie sie aus, um die angehängten Richtlinien und die Vertrauensstellung anzuzeigen.

  5. Wählen Sie Vertrauensstellungen und dann Vertrauensrichtlinie bearbeiten aus.

  6. Stellen Sie sicher, dass die Vertrauensstellung der Capability Trust-Richtlinie entspricht. Wenn sie nicht übereinstimmt, aktualisieren Sie die Vertrauensrichtlinie.

  7. Wählen Sie Berechtigungen aus und stellen Sie sicher, dass die Rolle über die entsprechenden Berechtigungen für Ihren Funktionstyp und Ihren Anwendungsfall verfügt.

Eine Capability-IAM-Rolle erstellen

Sie können die AWS-Managementkonsole oder die AWS CLI verwenden, um eine Capability-Rolle zu erstellen.

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

  2. Wählen Sie Roles (Rollen) und anschließend Create Role (Rolle erstellen) aus.

  3. Wählen Sie unter Vertrauenswürdiger Entitätstyp die Option Benutzerdefinierte Vertrauensrichtlinie aus.

  4. Kopieren Sie die Capability Trust Policy und fügen Sie sie in den Trust Policy Editor ein.

  5. Wählen Sie Weiter aus.

  6. Wählen Sie auf der Registerkarte „Berechtigungen hinzufügen“ Richtlinien aus, die Ihrem Funktionstyp entsprechen, oder erstellen Sie sie (sieheBerechtigungen nach Funktionstyp). Für Kro können Sie diesen Schritt überspringen.

  7. Wählen Sie Weiter aus.

  8. Geben Sie unter Rollenname einen eindeutigen Namen für Ihre Rolle ein, z. B. ACKCapabilityRoleArgoCDCapabilityRole, oderkroCapabilityRole.

  9. Geben Sie unter Beschreibung einen beschreibenden Text, wie z. B. Amazon EKS - ACK capability role, ein.

  10. Wählen Sie Rolle erstellen aus.

AWS -CLI
  1. Kopieren Sie die Capability Trust-Richtlinie in eine Datei mit dem Namencapability-trust-policy.json.

  2. Erstellen Sie die Rolle. ACKCapabilityRoleErsetzen Sie sie durch den gewünschten Rollennamen.

    aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://capability-trust-policy.json
  3. Hängen Sie die erforderlichen IAM-Richtlinien an die Rolle an. Fügen Sie für ACK Richtlinien für die AWS Dienste hinzu, die Sie verwalten möchten. Fügen Sie für Argo CD Richtlinien für Secrets Manager oder bei CodeConnections Bedarf hinzu. Für Kro können Sie diesen Schritt überspringen.

    Beispiel für ACK mit S3-Berechtigungen:

    aws iam put-role-policy \ --role-name ACKCapabilityRole \ --policy-name S3Management \ --policy-document file://s3-policy.json

Behebung von Problemen mit Funktionsrollen

Die Erstellung von Funktionen schlägt mit der Meldung „Ungültige IAM-Rolle“ fehl

Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:

  • Die Rolle ist in demselben Konto wie der Cluster vorhanden

  • Die Vertrauensrichtlinie entspricht der Capability Trust-Richtlinie

  • Sie haben die iam:PassRole Erlaubnis für die Rolle

Die Funktion zeigt Berechtigungsfehler

Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:

  • Die Rolle verfügt über die erforderlichen IAM-Berechtigungen für den Fähigkeitstyp

  • Der Zugriffseintrag für die Rolle ist auf dem Cluster vorhanden

  • Zusätzliche Kubernetes-Berechtigungen werden bei Bedarf konfiguriert (siehe) Zusätzliche Kubernetes-Berechtigungen

ACK-Ressourcen schlagen mit der Fehlermeldung „Zugriff verweigert“ fehl

Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:

  • Die Rolle verfügt über die erforderlichen IAM-Berechtigungen für Ihren Anwendungsfall

  • Stellen Sie bei ACK-Controllern, die auf geheime Daten verweisen, sicher, dass Sie den AmazonEKSSecretReaderPolicy Geltungsbereich der Zugriffsrichtlinie den entsprechenden Namespaces zugeordnet haben.

Weitere Anleitungen zur Fehlerbehebung finden Sie unter. Sicherheitsüberlegungen für EKS-Funktionen