AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie behebe ich den Fehler "Your current user or role does not have access to Kubernetes objects on this EKS cluster" in Amazon EKS?
Ich habe versucht, auf meinen Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster zuzugreifen. Aber ich habe die Fehlermeldung "Your current user or role does not have access to Kubernetes objects on this EKS cluster" erhalten.
Kurzbeschreibung
Du erhältst einen Zugriffsfehler, wenn eine AWS Identity and Access Management (IAM)-Identität keine rollenbasierten Zugriffssteuerungsberechtigungen (RBAC) für Kubernetes hat. Um auf die Kubernetes-API zugreifen zu können, benötigst du RBAC-Berechtigungen. Weitere Informationen findest du unter Verwendung der RBAC-Autorisierung auf der Kubernetes-Website. Um Kubernetes-Ressourcen in der AWS-Managementkonsole anzuzeigen, muss deine IAM-Identität der aws-auth-ConfigMap in deinem Amazon-EKS-Cluster zugeordnet sein.
Wichtig: Die folgende Auflösung verwendet die aws-auth-ConfigMap, um sich an den Kubernetes-Ansatz für den Zugriff auf RBAC-Berechtigungen anzupassen. Es hat sich bewährt, vorhandene aws-auth-ConfigMap-Einträge zu migrieren, um auf Einträge zuzugreifen.
Lösung
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.
Wenn du der Ersteller oder Administratorbenutzer des Clusters bist, kannst du kubectl or eksctl verwenden, um die aws-auth-ConfigMap zu aktualisieren. Fahre mit IAM-Benutzer oder IAM-Rolle zur RBAC-Konfiguration hinzufügen fort. Andernfalls musst du den Amazon-Ressourcennamen (ARN) der IAM-Identität abrufen, die Cluster-Zugriff erfordert.
ARN der IAM-Identität abrufen, für die Cluster-Zugriff erforderlich ist
Identifiziere den IAM-Benutzer oder die IAM-Rolle, der/die Zugriff auf den Cluster benötigt.
Hinweis: Die IAM-Identität kann sich von der IAM-Identität unterscheiden, die du verwendest, wenn du die AWS CLI ausführst. Der AWS IAM Authenticator für Kubernetes erlaubt keinen Pfad in dem Rollen-ARN, den du in der aws-auth-ConfigMap verwendest. Weitere Informationen findest du unter aws-iam-authenticator auf der GitHub-Website.
Wenn du AWS-CLI-Zugriff auf den IAM-Benutzer oder die IAM-Rolle hast, führe den folgenden get-caller-identity-AWS-CLI-Befehl aus:
aws sts get-caller-identity --query "Arn"
Hinweis: Wenn du keinen AWS-CLI-Zugriff hast, entferne die Anführungszeichen aus Arn und führe den vorherigen Befehl in AWS CloudShell aus.
Beispielausgabe:
"arn:aws:iam::111122223333:role/testrole"
Wenn die Ausgabe des Befehls einen IAM-Rollen-ARN anzeigt, stelle sicher, dass er das richtige ARN-Format hat: arn:aws:iam::111122223333:role/example.
Wenn der ARN die angenommene Rolle enthält, musst du den ARN der IAM-Rolle abrufen, für die du RBAC-Berechtigungen gewährst. Beispielsweise ist der angenommene Rollen-ARN von arn:aws:sts::123456:assumed-role/MyRole/your_username mit dem Rollen-ARN von arn:aws:sts::123456:role/MyRole verknüpft.
Stelle den ARN dem Administrator deines Clusters zur Verfügung und fordere dann den Administrator auf, den ARN der Rolle zur aws-auth-ConfigMap hinzuzufügen. Schritte zum Hinzufügen des ARN zur aws-auth-ConfigMap findest du unter IAM-Benutzer oder IAM-Rolle zur RBAC-Konfiguration hinzufügen.
Vergewissere dich, dass der identifizierte IAM-Benutzer oder die identifizierte IAM-Rolle berechtigt ist, Knoten und Workloads für alle Cluster in der AWS-Managementkonsole anzuzeigen.
Identifizieren des Cluster-Erstellers
Wichtig: Nur die IAM-Entität, die mit der Erstellung des Clusters verknüpft ist, hat Zugriff auf Cluster-Ressourcen. Nur der Cluster-Ersteller kann die aws-auth-ConfigMap bearbeiten und Zugriff auf andere IAM-Entitäten gewähren.
Identifiziere die Cluster-Ersteller- oder Administratorrolle, die über primäre Berechtigungen zur Konfiguration deines Clusters verfügt. Überprüfe zunächst deinen AWS CloudTrail-Ereignisverlauf für den CreateCluster-API-Aufruf. Überprüfe dann das Feld userIdentity.
Wenn der Name des Cluster-Erstellers in CloudTrail als Gelöscht angezeigt wird, erstelle einen neuen IAM-Benutzer oder eine neue IAM-Rolle mit demselben Namen. Die neue IAM-Identität hat denselben ARN wie der ursprüngliche Cluster-Ersteller, sodass die neue Identität denselben Administratorzugriff auf den Cluster erbt.
Hinweis: CloudTrail gibt nicht den Namen des Cluster-Erstellers für Cluster an, die älter als 90 Tage sind.
Um mithilfe der AWS CLI die IAM-Identität des Cluster-Erstellers abzurufen, führe den folgenden get-caller-identity-Befehl aus:
aws sts get-caller-identity
Beispielausgabe:
{ "UserId": "AIDACKCEVSQ6C2EXAMPLE", "Account": "111122223333", "Arn": "arn:aws:iam:: 111122223333:user/testuser" }
IAM-Benutzer oder IAM-Rolle zur RBAC-Konfiguration hinzufügen
Wenn du eksctl installiert hast, führe den folgenden eksctl create iamidentitymapping-Befehl aus, um die aws-auth-ConfigMap zu aktualisieren:
eksctl create iamidentitymapping --cluster your_cluster_name --region=your_region --arn your_IAM_ARN --group system:masters --username admin
**Hinweis:**Ersetze your_cluster_name durch deinen Cluster-Namen, your_region durch deine AWS-Region und your_IAM_ARN durch deine IAM-Rolle oder deinen Benutzer-ARN.
Gehe wie folgt vor, um die aws-auth-ConfigMap mit kubectl zu aktualisieren:
-
Führe den folgenden Befehl aus, um die aws-auth-ConfigMap in deinem Standard-Texteditor zu öffnen:
kubectl edit configmap aws-auth -n kube-systemHinweis: Die Konsole zeigt die aktuelle ConfigMap. Wenn du keine Verbindung zum Cluster herstellen kannst, aktualisiere deine kubeconfig-Datei. Die IAM-Identität, die den Cluster erstellt, hat immer Zugriff auf den Cluster.
-
Führe den folgenden update-kubeconfig-Befehl aus, um kubectl so zu konfigurieren, dass du eine Verbindung zu deinem Cluster herstellen kannst:
aws eks update-kubeconfig --region region_code --name your_cluster_nameHinweis: Ersetze region_code durch deine Region und your_cluster_name durch deinen Cluster-Namen. Die kubectl-Befehle müssen eine Verbindung zum Amazon EKS-Serverendpunkt herstellen. Wenn der API-Server-Endpunkt öffentlich ist, benötigst du Internetzugang, um eine Verbindung zum Endpunkt herzustellen. Wenn der Endpunkt privat ist, stelle von der Virtual Private Cloud (VPC), auf der dein Cluster ausgeführt wird, eine Verbindung zum Server-Endpunkt her.
-
Gib im sich öffnenden Texteditor den folgenden Code ein, um einen IAM-Benutzer hinzuzufügen:
mapUsers: | - userarn: arn:aws:iam::111122223333:user/testuser username: testuser groups: - system:bootstrappers - system:nodesHinweis: Ersetze 111122223333 durch deine AWS-Konto-ID und testuser durch deinen IAM-Benutzer.
Oder gib den folgenden Code ein, um eine IAM-Rolle hinzuzufügen:
mapRoles: | - rolearn: arn:aws:iam::111122223333:role/testrole username: testrole groups: - system:bootstrappers - system:nodesHinweis: Ersetze 111122223333 durch deine Konto-ID und testrole durch deine IAM-Rolle.
Wenn du einen Cluster erstellst, erhält deine IAM-Identität automatisch system:masters-Berechtigungen in der RBAC-Konfiguration des Clusters. Standardmäßig ist die Gruppe system:masters an die Cluster-Rolle cluster-admin gebunden.
Es ist keine bewährte Methode, system:masters-Berechtigungen in einer Produktionsumgebung zu verwenden. Die system:masters-Berechtigungen geben Benutzern vollen Zugriff auf alle Kubernetes-Ressourcen im Cluster. Stattdessen empfiehlt es sich, eine Rolle zu erstellen, die nur Zugriff auf einen bestimmten Namespace mit nur den erforderlichen Berechtigungen hat.
Zugriff auf deinen Cluster überprüfen
Führe die folgenden Schritte aus:
- Öffne die Amazon-EKS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle deinen Cluster aus.
- Überprüfe die Registerkarten Übersicht und Workloads auf Fehler.
Wenn du Fehler siehst, findest du weitere Informationen unter Problembehandlung bei IAM. Wenn du beispielsweise den RBAC-Zugriff für einen bestimmten Namespace konfiguriert hast, wird möglicherweise die folgende Fehlermeldung angezeigt:
"Error loading Deployments : deployments.apps is forbidden: User "AIDACKCEVSQ6C2EXAMPLE" cannot list resource "deployments" in API group "apps" at the cluster scope or in the namespace "EXAMPLENAMESPACE"
Um den Namespace-Fehler zu beheben, musst du die RBAC-Rolle oder Cluster-Rolle mit den entsprechenden Rollen- oder Cluster-Rollenbindungen erstellen oder aktualisieren. Weitere Informationen findest du unter RoleBinding und ClusterRoleBinding auf der Kubernetes-Website.
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 5 Monaten
AWS OFFICIALAktualisiert vor 4 Monaten
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor 8 Monaten