Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie konfiguriere ich einen SSO-Benutzer für den Zugriff auf meinen Amazon EKS-Cluster?
Ich möchte einen AWS IAM Identity Center-Benutzer konfigurieren, damit er auf meinen Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster zugreifen kann.
Lösung
Voraussetzungen
- IAM Identity Center muss aktiviert und konfiguriert sein
- Der SSO-Benutzer muss dem AWS-Konto zugeordnet sein, das den EKS-Cluster enthält
- Der EKS-Cluster muss Zugriffseinträge unterstützen (Plattformversion eks.2 oder höher)
Um einen SSO-Benutzer für den Zugriff auf deinen Amazon EKS-Cluster zu konfigurieren, führe die folgenden Schritte aus:
AWS CLI für SSO-Authentifizierung konfigurieren
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Konfiguriere die AWS CLI so, dass sie SSO-Authentifizierung verwendet, damit sich der SSO-Benutzer authentifizieren und eine AWS Identity and Access Management (IAM)-Rolle übernehmen kann.
Weitere Informationen zur Konfiguration der AWS CLI mit IAM Identity Center findest du unter AWS CLI in IAM Identity Center integrieren.
kubectl für die Verwendung des SSO-Profils konfigurieren
Um kubectl für dein SSO-Profil zu konfigurieren, führe den folgenden AWS-CLI-Befehl update-kubeconfig aus:
aws eks update-kubeconfig --name your-cluster-name --profile your-sso-profile
Hinweis: Ersetze your-cluster-name durch deinen EKS-Cluster-Namen. Ersetze your-sso-profile durch den Namen deines SSO-Profils.
Authentifizierungsmodus des Clusters überprüfen
Um den Authentifizierungsmodus des Clusters zu überprüfen, führe den folgenden AWS-CLI-Befehl describe-cluster aus:
aws eks describe-cluster --name your-cluster-name --query "cluster.accessConfig.authenticationMode" --profile your-sso-profile
Hinweis: Ersetze your-cluster-name durch deinen EKS-Cluster-Namen. Ersetze your-sso-profile durch den Namen deines SSO-Profils.
Wenn die Ausgabe API oder API_AND_CONFIG_MAP anzeigt, sind Zugriffseinträge aktiviert. Wenn die Ausgabe CONFIG_MAP anzeigt, ist nur die Methode aws-auth ConfigMap verfügbar.
Zugriff mit Zugriffseinträgen konfigurieren
Wähle eine der folgenden Berechtigungsstufen aus:
Clusterweite Administratorberechtigungen erteilen
Führe die folgenden Schritte aus:
- Öffne die Amazon-EKS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle deinen Cluster aus.
- Wähle die Registerkarte Zugriff aus.
- Wähle im Abschnitt Zugriffseinträge die Option Zugriffseintrag erstellen aus.
- Gib für IAM-Prinzipal-ARN die ARN deiner SSO-Rolle ohne den Pfadbestandteil ein.
- Wähle für Typ die Option Standard aus.
- Wähle Weiter aus.
- Wähle für Richtlinienname die Option AmazonEKSClusterAdminPolicy aus.
- Wähle für Zugriffsbereich die Option Cluster aus.
- Wähle Weiter und dann Erstellen aus.
Namespace-spezifische Berechtigungen gewähren
Führe die folgenden Schritte aus:
- Öffne die Amazon-EKS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle deinen Cluster aus.
- Wähle die Registerkarte Zugriff aus.
- Wähle im Abschnitt Zugriffseinträge die Option Zugriffseintrag erstellen aus.
- Gib für IAM-Prinzipal-ARN die ARN deiner SSO-Rolle ohne den Pfadbestandteil ein.
- Wähle für Typ die Option Standard aus.
- Wähle Weiter aus.
- Wähle für Richtlinienname die Option AmazonEKSAdminViewPolicy oder AmazonEKSEditPolicy aus, abhängig von deinen Anforderungen.
- Wähle für Zugriffsbereich die Option Namespace aus.
- Gib für Namespace den Namen deines Namespace ein.
- Wähle Weiter und dann Erstellen aus.
Weitere Informationen zu Access Entries findest du unter IAM-Benutzern Zugriff auf Kubernetes mit EKS-Zugriffseinträgen gewähren.
aws-auth ConfigMap verwenden, um Zugriff zu konfigurieren
Wichtig: Wenn du aws-auth mit IAM Identity Center verwendest, verwende die IAM-Rollen-ARN ohne den Pfadbestandteil. Wenn deine Rollen-ARN arn:aws:iam::123456789012:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdministratorAccess_1234567890abcdef lautet, entferne den Pfad, um arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef zu verwenden.
Wenn dein Cluster Zugriffseinträge nicht unterstützt oder du lieber die aws-auth ConfigMap verwendest, führe die folgenden Schritte aus:
Clusterweite Administratorberechtigungen erteilen
Erstelle eine YAML-Datei mit der folgenden Konfiguration:
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-admin-user groups: - system:masters
Hinweis: Ersetze den Wert rolearn durch die ARN deiner SSO-Rolle ohne den Pfadbestandteil. Ersetze sso-admin-user durch deinen gewünschten Benutzernamen.
Wende die Konfiguration an:
kubectl apply -f aws-auth-configmap.yaml
Namespace-spezifische Berechtigungen gewähren
Erstelle eine Role und RoleBinding für namespacespezifischen Zugriff:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: sso-user-role namespace: your-namespace rules: - apiGroups: [""] resources: ["pods", "services", "configmaps"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: sso-user-rolebinding namespace: your-namespace subjects: - kind: User name: sso-user apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: sso-user-role apiGroup: rbac.authorization.k8s.io
Hinweis: Ersetze your-namespace durch den Namen deines Namespace. Ersetze sso-user durch den Benutzernamen, den du in der aws-auth ConfigMap angegeben hast.
Wende die Konfiguration an:
kubectl apply -f role-rolebinding.yaml
Aktualisiere die aws-auth ConfigMap, um die SSO-Rolle dem Benutzernamen zuzuordnen:
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-user
Hinweis: Ersetze den Wert rolearn durch die ARN deiner SSO-Rolle ohne den Pfadbestandteil.
Wende die Konfiguration an:
kubectl apply -f aws-auth-configmap.yaml
Weitere Informationen zur aws-auth ConfigMap findest du unter IAM-Benutzern Zugriff auf Kubernetes mit einer ConfigMap gewähren.
Zugriff überprüfen
Um zu überprüfen, ob der SSO-Benutzer auf den Cluster zugreifen kann, führe den folgenden Befehl aus:
kubectl get nodes
Wenn der Befehl eine Liste von Knoten zurückgibt, hat sich der SSO-Benutzer erfolgreich am Cluster authentifiziert.
Ähnliche Informationen
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren