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:AssumeRoleErlaubnis, 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.
-
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie im linken Navigationsbereich Roles aus.
-
Suchen Sie in der Rollenliste nach dem Namen Ihrer Capability-Rolle (z. B.
ACKCapabilityRoleoderArgoCDCapabilityRole). -
Wenn eine Rolle vorhanden ist, wählen Sie sie aus, um die angehängten Richtlinien und die Vertrauensstellung anzuzeigen.
-
Wählen Sie Vertrauensstellungen und dann Vertrauensrichtlinie bearbeiten aus.
-
Stellen Sie sicher, dass die Vertrauensstellung der Capability Trust-Richtlinie entspricht. Wenn sie nicht übereinstimmt, aktualisieren Sie die Vertrauensrichtlinie.
-
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
-
-
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie Roles (Rollen) und anschließend Create Role (Rolle erstellen) aus.
-
Wählen Sie unter Vertrauenswürdiger Entitätstyp die Option Benutzerdefinierte Vertrauensrichtlinie aus.
-
Kopieren Sie die Capability Trust Policy und fügen Sie sie in den Trust Policy Editor ein.
-
Wählen Sie Weiter aus.
-
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.
-
Wählen Sie Weiter aus.
-
Geben Sie unter Rollenname einen eindeutigen Namen für Ihre Rolle ein, z. B.
ACKCapabilityRoleArgoCDCapabilityRole, oderkroCapabilityRole. -
Geben Sie unter Beschreibung einen beschreibenden Text, wie z. B.
Amazon EKS - ACK capability role, ein. -
Wählen Sie Rolle erstellen aus.
-
- AWS -CLI
-
-
Kopieren Sie die Capability Trust-Richtlinie in eine Datei mit dem Namen
capability-trust-policy.json. -
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 -
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:PassRoleErlaubnis 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
AmazonEKSSecretReaderPolicyGeltungsbereich der Zugriffsrichtlinie den entsprechenden Namespaces zugeordnet haben.
-
Weitere Anleitungen zur Fehlerbehebung finden Sie unter. Sicherheitsüberlegungen für EKS-Funktionen