Zugangseinträge erstellen - Amazon EKS

Helfen Sie mit, diese Seite zu verbessern

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.

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.

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.

Zugangseinträge erstellen

Berücksichtigen Sie Folgendes, bevor Sie Zugriffseinträge erstellen:

  • Ein ordnungsgemäß eingestellter Authentifizierungsmodus. Siehe Ändern Sie den Authentifizierungsmodus, um Zugriffseinträge zu verwenden.

  • Ein Zugriffseintrag enthält den Amazon-Ressourcennamen (ARN) eines und nur eines vorhandenen IAM Prinzipals. Ein IAM Principal kann nicht in mehr als einem Zugriffseintrag enthalten sein. Zusätzliche Überlegungen zu demARN, den Sie angeben:

    • IAMIn den bewährten Methoden wird empfohlen, für den Zugriff auf Ihren Cluster IAM Rollen mit kurzfristigen Anmeldeinformationen anstelle von IAM Benutzern mit langfristigen Anmeldeinformationen zu verwenden. Weitere Informationen finden Sie im Benutzerhandbuch unter Erfordern, dass menschliche Benutzer einen Verbund mit einem Identitätsanbieter AWS verwenden müssen, um mit temporären Anmeldeinformationen darauf zugreifen zu IAM können.

    • Wenn der für eine IAM Rolle ARN ist, kann er einen Pfad enthalten. ARNsin aws-auth ConfigMap Einträgen darf kein Pfad enthalten sein. Sie ARN können zum Beispiel arn:aws: iam::<111122223333>:role/<development/apps/my-role> oder sein arn:aws: iam::<111122223333>:role/<my-role>.

    • Wenn der Typ des Zugriffseintrags etwas anderes ist als STANDARD (siehe nächste Überlegung zu Typen), ARN müssen sie sich in demselben AWS Konto befinden, in dem sich Ihr Cluster befindet. Wenn der Typ istSTANDARD, ARN können sie sich in demselben oder einem anderen Konto befinden als das AWS Konto, in dem sich Ihr Cluster befindet.

    • Sie können den IAM Prinzipal nicht mehr ändern, nachdem der Zugriffseintrag erstellt wurde.

    • Wenn Sie den IAM Prinzipal damit jemals löschenARN, wird der Zugriffseintrag nicht automatisch gelöscht. Wir empfehlen, dass Sie den Zugriffseintrag mit einem ARN für einen IAM Prinzipal löschen, den Sie löschen. Wenn Sie den Zugriffseintrag nicht löschen und den IAM Prinzipal erneut erstellen, funktioniert der Zugriffseintrag nichtARN, auch wenn er denselben hat. Das liegt daran, dass, obwohl der für den neu erstellten IAM Prinzipal derselbe ARN ist, der roleID oder userID (Sie können das mit dem aws sts get-caller-identity AWS CLI Befehl sehen) für den neu erstellten IAM Prinzipal anders ist als für den ursprünglichen Prinzipal. IAM Auch wenn Sie den roleID oder userID für einen Zugriffseintrag des IAM Prinzipals nicht sehen, EKS speichert Amazon ihn zusammen mit dem Zugriffseintrag.

  • Jeder Zugriffseintrag hat einen Typ. Sie können EC2_Linux (für eine IAM Rolle, die mit selbstverwalteten Linux- oder Bottlerocket-Knoten verwendet wird), EC2_Windows (für eine IAM Rolle, die mit selbstverwalteten Windows-Knoten verwendet wird), FARGATE_LINUX (für eine mit AWS Fargate (Fargate) verwendete IAM Rolle), HYBRID_LINUX (für eine IAM Rolle, die mit Hybridknoten verwendet wird) oder als Typ angeben. STANDARD Wenn Sie keinen Typ angeben, setzt Amazon den Typ EKS automatisch aufSTANDARD. Es ist nicht erforderlich, einen Zugriffseintrag für eine IAM Rolle zu erstellen, die für eine verwaltete Knotengruppe oder ein Fargate-Profil verwendet wird, da Amazon Einträge für diese Rollen EKS hinzufügt aws-authConfigMap, unabhängig davon, auf welcher Plattformversion sich Ihr Cluster befindet.

    Sie können den Typ nicht ändern, nachdem der Zugriffseintrag erstellt wurde.

  • Wenn der Typ des Zugriffseintrags STANDARD lautet, können Sie einen Benutzernamen für den Zugriffseintrag angeben. Wenn Sie keinen Wert für den Benutzernamen angeben, EKS legt Amazon einen der folgenden Werte für Sie fest, abhängig vom Typ des Zugriffseintrags und davon, ob es sich bei dem von Ihnen angegebenen IAM Principal um eine IAM Rolle oder einen IAM Benutzer handelt. Sofern Sie keinen bestimmten Grund für die Angabe Ihres eigenen Benutzernamens haben, empfehlen wir, keinen anzugeben und Amazon ihn EKS automatisch für Sie generieren zu lassen. Beachten Sie bei Angabe eines eigenen Benutzernamens Folgendes:

    • Es kann nicht mitsystem:,, eks: aws:amazon:, oder iam: beginnen.

    • Wenn der Nutzername für eine IAM Rolle ist, empfehlen wir, dass du deinen Nutzernamen am Ende {{SessionName}} hinzufügst. Wenn du {{SessionName}} zu deinem Nutzernamen etwas hinzufügst, muss der Nutzername einen Doppelpunkt vor {{SessionName}} enthalten. Wenn diese Rolle übernommen wird, wird der Name der Sitzung, der bei der Übernahme der Rolle angegeben wurde, automatisch an den Cluster übergeben und erscheint in den CloudTrail Protokollen. Sie können beispielsweise keinen Benutzernamen von habenjohn{{SessionName}}. Er müsste :john{{SessionName}} oder jo:hn{{SessionName}} lauten. Der Doppelpunkt muss sich nur vor {{SessionName}} befinden. Der von Amazon EKS in der folgenden Tabelle generierte Benutzername enthält eineARN. Da ein ARN Doppelpunkt enthält, erfüllt es diese Anforderung. Der Doppelpunkt ist nicht erforderlich, wenn Sie ihn nicht {{SessionName}} in Ihrem Benutzernamen angeben.

      IAMPrinzipaltyp Typ Wert für den Benutzernamen, den Amazon EKS automatisch festlegt

      Benutzer

      STANDARD

      Der ARN des Benutzers. Beispiel: arn:aws: iam::<111122223333>:user/<my-user>

      Rolle

      STANDARD

      Die Rolle, zu STS ARN der sie übernommen wurde. Amazon EKS fügt die Rolle {{SessionName}} hinzu.

      Beispiel: arn:aws: sts::<111122223333>:assumed-role/<my-role>/{{SessionName}}

      Wenn die ARN von Ihnen angegebene Rolle einen Pfad enthielt, EKS entfernt Amazon ihn aus dem generierten Benutzernamen.

      Rolle

      EC2_Linux oder EC2_Windows

      system:node:{{EC2PrivateDNSName}}

      Rolle

      FARGATE_LINUX

      system:node:{{SessionName}}

      Rolle

      HYBRID_LINUX

      system:node:{{SessionName}}

      Sie können den Benutzernamen ändern, nachdem der Zugriffseintrag erstellt wurde.

  • Wenn der Typ eines Zugangseintrags ist STANDARD und Sie ihn verwenden möchten Kubernetes RBACAutorisierung: Sie können dem Zugriffseintrag einen oder mehrere Gruppennamen hinzufügen. Gruppennamen können nach der Erstellung eines Zugriffseintrags hinzugefügt und entfernt werden. Damit der IAM Schulleiter Zugriff hat Kubernetes Objekte in Ihrem Cluster müssen Sie erstellen und verwalten Kubernetes rollenbasierte Autorisierungsobjekte (RBAC). Erstellen Kubernetes RoleBindingoder ClusterRoleBinding Objekte in Ihrem Cluster, die den Gruppennamen als subject für angeben. kind: Group Kubernetes autorisiert den IAM Prinzipalzugriff auf alle Clusterobjekte, die Sie in einem angegeben haben Kubernetes Roleoder ClusterRole Objekt, das Sie auch in Ihren Bindungen angegeben haben. roleRef Wenn Sie Gruppennamen angeben, empfehlen wir, dass Sie mit dem vertraut sind Kubernetes rollenbasierte Autorisierungsobjekte (RBAC). Weitere Informationen finden Sie unter Verwenden der RBAC Autorisierung im Kubernetes -Dokumentation.

    Wichtig

    Amazon bestätigt EKS nicht, dass irgendwelche Kubernetes RBACObjekte, die in Ihrem Cluster existieren, enthalten alle Gruppennamen, die Sie angeben.

    Anstelle von oder zusätzlich zu Kubernetes Autorisierung des IAM Hauptzugriffs auf Kubernetes Objekte in Ihrem Cluster, Sie können EKS Amazon-Zugriffsrichtlinien einem Zugriffseintrag zuordnen. Amazon EKS autorisiert IAM Principals zum Zugriff Kubernetes Objekte in Ihrem Cluster mit den in der Zugriffsrichtlinie festgelegten Berechtigungen. Sie können die Berechtigungen einer Zugriffsrichtlinie auf folgende Bereiche beschränken Kubernetes Namespaces, die Sie angeben. Für die Verwendung von Zugriffsrichtlinien ist keine Verwaltung erforderlich Kubernetes RBACObjekte. Weitere Informationen finden Sie unter Zugriffsrichtlinien mit Zugriffseinträgen verknüpfen.

  • Wenn Sie einen Zugriffseintrag mit dem Typ EC2_Linux oder erstellenEC2_Windows, muss der IAM Prinzipal, der den Zugriffseintrag erstellt, über die iam:PassRole entsprechende Berechtigung verfügen. Weitere Informationen finden Sie im Benutzerhandbuch unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS Dienst. IAM

  • Ähnlich wie beim IAMStandardverhalten sind die Erstellung und Aktualisierung von Zugriffseinträgen letztlich konsistent und es kann mehrere Sekunden dauern, bis sie wirksam werden, nachdem der erste API Aufruf erfolgreich zurückgesendet wurde. Sie müssen Ihre Anwendungen unter Berücksichtigung dieser potenziellen Verzögerungen konzipieren. Wir empfehlen, die Erstellung oder Aktualisierung von Zugriffseinträgen nicht in die kritischen, hochverfügbaren Codepfade Ihrer Anwendung aufzunehmen. Nehmen Sie -Änderungen stattdessen in einer separaten Initialisierungs- oder Einrichtungsroutine vor, die seltener ausgeführt wird. Vergewissern Sie sich auch, dass die Änderungen weitergegeben wurden, bevor die Produktionsarbeitsabläufe davon abhängen.

  • Access-Einträge unterstützen keine dienstbezogenen Rollen. Sie können keine Zugriffseinträge erstellen, bei denen es sich bei dem Principal um eine dienstbezogene Rolle ARN handelt. Sie können dienstbezogene Rollen anhand ihrer Rollen identifizierenARN, die im folgenden Format angegeben sind arn:aws: iam::*:role/aws-service-role/*.

Sie können einen Zugriffseintrag mit dem AWS Management Console oder dem erstellen AWS CLI.

AWS Management Console

  1. Öffnen Sie die EKSAmazon-Konsole.

  2. Wählen Sie den Namen des Clusters aus, in dem Sie einen Zugriffseintrag erstellen möchten.

  3. Wählen Sie die Registerkarte Zugriff aus.

  4. Wählen Sie Zugriffseintrag erstellen aus.

  5. Wählen Sie IAMals Principal eine bestehende IAM Rolle oder einen vorhandenen Benutzer aus. IAMIn bewährten Methoden wird empfohlen, für den Zugriff auf Ihren Cluster IAM Rollen mit kurzfristigen Anmeldeinformationen anstelle von IAM Benutzern mit langfristigen Anmeldeinformationen zu verwenden. Weitere Informationen finden Sie im Benutzerhandbuch unter Erfordern, dass menschliche Benutzer einen Verbund mit einem Identitätsanbieter AWS verwenden müssen, um mit temporären Anmeldeinformationen darauf zugreifen zu IAM können.

  6. Wenn sich der Zugriffseintrag auf die Knotenrolle bezieht, die für selbstverwaltete EC2 Amazon-Knoten verwendet wird, wählen Sie EC2Linux oder EC2Windows aus. Übernehmen Sie andernfalls die Standardeinstellung (Standard).

  7. Wenn Sie unter Typ die Option Standard ausgewählt haben, können Sie bei Bedarf unter Benutzername einen Benutzernamen angeben.

  8. Wenn der von Ihnen gewählte Typ Standard ist und Sie diesen verwenden möchten Kubernetes RBACAutorisierung für den IAM Prinzipal, geben Sie einen oder mehrere Namen für Gruppen an. Wenn Sie keine Gruppennamen angeben und die EKS Amazon-Autorisierung verwenden möchten, können Sie in einem späteren Schritt oder nachdem der Zugriffseintrag erstellt wurde, eine Zugriffsrichtlinie zuordnen.

  9. (Optional) Weisen Sie dem Zugriffseintrag unter Tags Beschriftungen zu. So können Sie beispielsweise ganz einfach nach allen Ressourcen mit dem gleichen Tag suchen.

  10. Wählen Sie Weiter.

  11. Wenn Sie auf der Seite Zugriffsrichtlinie hinzufügen den Typ Standard ausgewählt haben und Sie möchten, dass Amazon EKS den IAM Principal autorisiert, Berechtigungen für Kubernetes Objekte in Ihrem Cluster, führen Sie die folgenden Schritte aus. Klicken Sie andernfalls auf Next (Weiter).

    1. Wählen Sie unter Richtlinienname eine Zugriffsrichtlinie aus. Sie können die Berechtigungen der Zugriffsrichtlinien nicht anzeigen, sie enthalten jedoch ähnliche Berechtigungen wie die in der Kubernetes ClusterRoleObjekte, die auf den Benutzer gerichtet sind. Weitere Informationen finden Sie unter Benutzerrollen in der Kubernetes -Dokumentation.

    2. Wählen Sie eine der folgenden Optionen:

      • Cluster — Wählen Sie diese Option, wenn Amazon EKS den IAM Principal autorisieren soll, die in der Zugriffsrichtlinie festgelegten Berechtigungen für alle zu erhalten Kubernetes Objekte in Ihrem Cluster.

      • Kubernetes namespace — Wählen Sie diese Option, wenn Amazon EKS dem IAM Principal die Berechtigungen in der Zugriffsrichtlinie für alle gewähren soll. Kubernetes Objekte in einem bestimmten Kubernetes Namespace auf Ihrem Cluster. Geben Sie für Namespace den Namen des Kubernetes Namespace auf Ihrem Cluster. Wenn Sie zusätzliche Namespaces hinzufügen möchten, wählen Sie Neuen Namespace hinzufügen aus und geben Sie den Namespace-Namen ein.

    3. Wenn Sie weitere Richtlinien hinzufügen möchten, wählen Sie Richtlinie hinzufügen aus. Sie können für jede Richtlinie unterschiedliche Geltungsbereiche festlegen, aber jede Richtlinie kann nur einmal hinzugefügt werden.

    4. Wählen Sie Weiter.

  12. Überprüfen Sie die Konfiguration für Ihren Zugriffseintrag. Sollten Sie einen Fehler entdecken, wählen Sie Zurück aus, um schrittweise zurück zu navigieren und den Fehler zu korrigieren. Ist die Konfiguration korrekt, wählen Sie Erstellen aus.

AWS CLI

  1. Installieren Sie den AWS CLI, wie unter Installation im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle beschrieben.

  2. So erstellen Sie einen Zugriffseintrag Sie können eines der folgenden Beispiele verwenden, um Zugriffseinträge zu erstellen:

    • Erstellen Sie einen Zugriffseintrag für eine selbstverwaltete Amazon EC2 Linux-Knotengruppe. my-clusterErsetzen Sie ihn durch den Namen Ihres Clusters, 111122223333 durch Ihre AWS Konto-ID und EKS-my-cluster-self-managed-ng-1 durch den Namen Ihrer IAMKnotenrolle. Wenn es sich bei Ihrer Knotengruppe um eine Windows-Knotengruppe handelt, EC2_Linux ersetzen Sie sie durchEC2_Windows.

      aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/EKS-my-cluster-self-managed-ng-1 --type EC2_Linux

      Sie können die --kubernetes-groups Option nicht verwenden, wenn Sie einen anderen Typ als angebenSTANDARD. Sie können diesem Zugriffseintrag keine Zugriffsrichtlinie zuordnen, da es sich bei seinem Typ um einen anderen Wert als handeltSTANDARD.

    • Erstellen Sie einen Zugriffseintrag, der eine IAM Rolle zulässt, die nicht für eine von Amazon EC2 selbst verwaltete Knotengruppe verwendet wird, die Sie möchten Kubernetes um den Zugriff auf Ihren Cluster mit zu autorisieren. my-clusterErsetzen Sie es durch den Namen Ihres Clusters, 111122223333 durch Ihre AWS Konto-ID und my-role durch den Namen Ihrer IAM Rolle. ViewersErsetzen Sie es durch den Namen einer Gruppe, die Sie in einem angegeben haben Kubernetes RoleBindingoder ClusterRoleBinding Objekt in Ihrem Cluster.

      aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role --type STANDARD --user Viewers --kubernetes-groups Viewers
    • Erstellen Sie einen Zugriffseintrag, der es einem IAM Benutzer ermöglicht, sich bei Ihrem Cluster zu authentifizieren. Dieses Beispiel wurde bereitgestellt, weil dies möglich ist. IAM Bewährte Methoden empfehlen jedoch, für den Zugriff auf Ihren Cluster IAM Rollen mit kurzfristigen Anmeldeinformationen anstelle von IAM Benutzern mit langfristigen Anmeldeinformationen zu verwenden. Weitere Informationen finden Sie im Benutzerhandbuch unter Erfordern, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter AWS verwenden müssen, um mit temporären Anmeldeinformationen darauf zugreifen zu IAM können.

      aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:user/my-user --type STANDARD --username my-user

      Wenn Sie möchten, dass dieser Benutzer mehr Zugriff auf Ihren Cluster hat als die in der Kubernetes APIDiscovery-Rollen, dann müssen Sie dem Zugriffseintrag eine Zugriffsrichtlinie zuordnen, da die --kubernetes-groups Option nicht verwendet wird. Weitere Informationen finden Sie unter Zugriffsrichtlinien mit Zugriffseinträgen verknüpfen und APIDiscovery-Rollen im Kubernetes -Dokumentation.