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.
EKS Access-Einträge
Sie können eksctl verwenden, um EKS Access-Einträge zu verwalten. Verwenden Sie Zugriffseinträge, um Kubernetes-Berechtigungen für AWS IAM-Identitäten zu erteilen. Sie können beispielsweise einer Entwicklerrolle die Berechtigung erteilen, Kubernetes-Ressourcen in einem Cluster zu lesen.
In diesem Thema wird beschrieben, wie Sie eksctl zur Verwaltung von Zugriffseinträgen verwenden. Allgemeine Informationen zu Zugriffseinträgen finden Sie unter Gewähren Sie IAM-Benutzern Zugriff auf Kubernetes mit EKS-Zugriffseinträgen.
Sie können von AWS definierte Kubernetes-Zugriffsrichtlinien anhängen oder einer Kubernetes-Gruppe eine IAM-Identität zuordnen.
Wenn Sie Kubernetes-Richtlinien für Kunden definieren müssen, ordnen Sie die IAM-Identität einer Kubernetes-Gruppe zu und gewähren Sie dieser Gruppe Berechtigungen.
Cluster-Authentifizierungsmodus
Sie können Zugriffseinträge nur verwenden, wenn der Authentifizierungsmodus des Clusters dies zulässt.
Weitere Informationen finden Sie unter Cluster-Authentifizierungsmodus festlegen
Legen Sie den Authentifizierungsmodus mit einer YAML-Datei fest
eksctlhat unter ein neues accessConfig.authenticationMode Feld hinzugefügt ClusterConfig, das auf einen der folgenden drei Werte gesetzt werden kann:
-
CONFIG_MAP- Standard in der EKS-API -aws-authConfigMap wird nur verwendet -
API- Es wird nur die API für Zugriffseinträge verwendet -
API_AND_CONFIG_MAP- voreingestellteksctl-aws-authConfigMap sowohl als auch die API für Zugriffseinträge kann verwendet werden
Stellen Sie den Authentifizierungsmodus in ClusterConfig YAML ein:
accessConfig: authenticationMode: <>
Aktualisieren Sie den Authentifizierungsmodus mit einem Befehl
Wenn Sie Zugriffseinträge für einen bereits vorhandenen, nicht von EKSCTL erstellten Cluster verwenden möchten, bei dem die CONFIG_MAP Option verwendet wird, muss der Benutzer zuerst auf einstellen. authenticationMode API_AND_CONFIG_MAP Dafür eksctl wurde ein neuer Befehl zur Aktualisierung des Cluster-Authentifizierungsmodus eingeführt, der sowohl mit CLI-Flags funktioniert, z.
eksctl utils update-authentication-mode --cluster my-cluster --authentication-mode API_AND_CONFIG_MAP
Zugriff auf Eintragsressourcen
Zugriffseinträge haben einen Typ, z. B. STANDARD oderEC2_LINUX. Der Typ hängt davon ab, wie Sie den Zugriffseintrag verwenden.
-
Der
standardTyp dient dazu, IAM-Benutzern und IAM-Rollen Kubernetes-Berechtigungen zu gewähren.-
Sie können beispielsweise Kubernetes-Ressourcen in der AWS-Konsole anzeigen, indem Sie der Rolle oder dem Benutzer, den Sie für den Zugriff auf die Konsole verwenden, eine Zugriffsrichtlinie anhängen.
-
-
Die
EC2_WINDOWSTypenEC2_LINUXund dienen dazu, Kubernetes-Berechtigungen für Instanzen zu gewähren. EC2 Instanzen verwenden diese Berechtigungen, um dem Cluster beizutreten.
Weitere Informationen zu den Arten von Zugriffseinträgen finden Sie unter Zugriffseinträge erstellen
IAM-Entitäten
Sie können Zugriffseinträge verwenden, um Kubernetes-Berechtigungen für IAM-Identitäten wie IAM-Benutzer und IAM-Rollen zu gewähren.
Verwenden Sie das accessConfig.accessEntries Feld, um den ARN einer IAM-Ressource einer Access Entries EKS-API zuzuordnen. Beispiel:
accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: arn:aws:iam::111122223333:user/my-user-name type: STANDARD kubernetesGroups: # optional Kubernetes groups - group1 # groups can used to give permissions via RBAC - group2 - principalARN: arn:aws:iam::111122223333:role/role-name-1 accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy accessScope: type: namespace namespaces: - default - my-namespace - dev-* - principalARN: arn:aws:iam::111122223333:role/admin-role accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster - principalARN: arn:aws:iam::111122223333:role/role-name-2 type: EC2_LINUX
Zusätzlich zur Zuordnung von EKS-Richtlinien können Sie auch die Kubernetes-Gruppen angeben, zu denen eine IAM-Entität gehört, wodurch Berechtigungen über RBAC gewährt werden.
Verwaltete Knotengruppen und Fargate
Die Integration mit den Zugangseinträgen für diese Ressourcen wird hinter den Kulissen durch die EKS-API erreicht. Neu erstellte verwaltete Knotengruppen und Fargate-Pods erstellen API-Zugriffseinträge, anstatt vorinstallierte RBAC-Ressourcen zu verwenden. Bestehende Knotengruppen und Fargate-Pods werden nicht geändert und verlassen sich weiterhin auf die Einträge in der aws-auth-Konfigurationsübersicht.
Selbstverwaltete Knotengruppen
Jeder Zugriffseintrag hat einen Typ. Für die Autorisierung von selbstverwalteten Knotengruppen eksctl wird für jede Knotengruppe ein eindeutiger Zugriffseintrag erstellt, wobei der Haupt-ARN auf die Knotenrolle ARN und der Typ entweder oder EC2_LINUX je nach Knotengruppe AMIFamily gesetzt ist. EC2_WINDOWS
Wenn Sie Ihre eigenen Zugriffseinträge erstellen, können Sie auch 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 IAM-Rolle, die mit AWS Fargate (Fargate) verwendet wird) oder als Typ angeben. STANDARD Wenn Sie keinen Typ angeben, ist der Standardtyp auf festgelegt. STANDARD
Anmerkung
Beim Löschen einer Knotengruppe, die mit einer bereits vorhandenen Knotengruppe erstellt wurdeinstanceRoleARN, liegt es in der Verantwortung des Benutzers, den entsprechenden Zugriffseintrag zu löschen, wenn ihm keine Knotengruppen mehr zugeordnet sind. Dies liegt daran, dass eksctl nicht versucht herauszufinden, ob ein Zugriffseintrag noch von nicht mit eksctl erstellten, selbstverwalteten Knotengruppen verwendet wird, da dies ein komplizierter Vorgang ist.
Zugangseintrag erstellen
Dies kann auf zwei verschiedene Arten geschehen, entweder während der Clustererstellung, indem Sie die gewünschten Zugriffseinträge als Teil der Konfigurationsdatei angeben und Folgendes ausführen:
eksctl create cluster -f config.yaml
ODER nach der Clustererstellung, indem Sie Folgendes ausführen:
eksctl create accessentry -f config.yaml
Ein Beispiel für eine Konfigurationsdatei zum Erstellen von Zugriffseinträgen finden Sie unter 40-access-entries.yaml im eksctl-Repo
Holen Sie sich den Zugangseintrag
Der Benutzer kann alle mit einem bestimmten Cluster verknüpften Zugriffseinträge abrufen, indem er einen der folgenden Schritte ausführt:
eksctl get accessentry -f config.yaml
ODER
eksctl get accessentry --cluster my-cluster
Alternativ kann man das Flag verwenden, um nur den Zugangseintrag abzurufen, der einer bestimmten IAM-Entität entspricht. z.B. --principal-arn
eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Zugangseintrag löschen
Um jeweils einen einzelnen Zugriffseintrag zu löschen, verwenden Sie:
eksctl delete accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Um mehrere Zugriffseinträge zu löschen, verwenden Sie die --config-file Markierung und geben Sie alle zu den Zugriffseinträgen principalARN’s gehörenden Einträge unter dem accessEntry Feld der obersten Ebene an, z. B.
... accessEntry: - principalARN: arn:aws:iam::111122223333:user/my-user-name - principalARN: arn:aws:iam::111122223333:role/role-name-1 - principalARN: arn:aws:iam::111122223333:role/admin-role
eksctl delete accessentry -f config.yaml
Migrieren Sie von aws-auth ConfigMap
Der Benutzer kann seine vorhandenen IAM-Identitäten von aws-auth Configmap zu Access-Einträgen migrieren, indem er den folgenden Befehl ausführt:
eksctl utils migrate-to-access-entry --cluster my-cluster --target-authentication-mode <API or API_AND_CONFIG_MAP>
Wenn --target-authentication-mode Flag auf gesetzt istAPI, wird der Authentifizierungsmodus in den API Modus umgeschaltet (übersprungen, falls der API Modus bereits aktiviert ist), die IAM-Identitätszuordnungen werden zu den Zugriffseinträgen migriert und die Configmap wird aus dem Cluster gelöscht. aws-auth
Wenn --target-authentication-mode Flag auf gesetzt istAPI_AND_CONFIG_MAP, wird der Authentifizierungsmodus in API_AND_CONFIG_MAP den Modus umgeschaltet (wird übersprungen, falls der API_AND_CONFIG_MAP Modus bereits aktiviert ist). IAM-Identitätszuordnungen werden zu Zugriffseinträgen migriert, die Configmap bleibt jedoch erhalten. aws-auth
Anmerkung
Wenn --target-authentication-mode Flag auf gesetzt istAPI, aktualisiert dieser Befehl den Authentifizierungsmodus nicht in den Modus, wenn für die API aws-auth Configmap eine der folgenden Einschränkungen gilt.
-
Es gibt eine Identitätszuweisung auf Kontoebene.
-
Eine oder mehrere Roles/Users sind den Kubernetes-Gruppen zugeordnet, die mit einem Präfix
system:beginnen (mit Ausnahme von EKS-spezifischen Gruppensystem:masters, d. h.system:bootstrappers,system:nodesusw.). -
Eine oder mehrere IAM-Identitätszuordnungen gelten für eine [Service Linked Role] (Link: IAM/latest/UserGuide/using - .html). service-linked-roles
Deaktivieren Sie die Administratorrechte für den Clusterersteller
eksctlhat ein neues Feld hinzugefügt, accessConfig.bootstrapClusterCreatorAdminPermissions: boolean das, wenn es auf „False“ gesetzt ist, die Erteilung von Cluster-Admin-Rechten für die IAM-Identität, die den Cluster erstellt, deaktiviert, d. h.
fügt die Option zur Konfigurationsdatei hinzu:
accessConfig: bootstrapClusterCreatorAdminPermissions: false
und führe aus:
eksctl create cluster -f config.yaml