Warum kann ich keine kubeconfig-Datei für meinen Amazon EKS-Cluster generieren?
Ich erhalte einen AccessDeniedException-Fehler, wenn ich versuche, eine kubeconfig-Datei für einen Amazon Elastic Kubernetes Service (Amazon EKS) -Cluster zu generieren.
Kurzbeschreibung
Sie müssen über die Berechtigung verfügen, die API-Aktion eks:DescribeCluster mit dem Cluster zu verwenden, um eine kubeconfig-Datei für einen Amazon EKS-Cluster zu generieren. Um die Berechtigung zu erhalten, fügen Sie einem IAM-Benutzer eine AWS Identity and Access Management (IAM) -Richtlinie hinzu.
Lösung
Gehen Sie wie folgt vor, um einem Benutzer eine IAM-Richtlinie zuzuweisen:
-
Öffnen Sie die IAM-Konsole. Wählen Sie dann im Navigationsbereich Benutzer oder Rollen aus.
-
Wählen Sie den Namen des Benutzers oder der Rolle aus, in den oder die eine Richtlinie eingebettet werden soll.
-
Wählen Sie im Reiter Berechtigungen die Option Inline-Richtlinie hinzufügen aus.
-
Wählen Sie den Reiter JSON.
-
Verwenden Sie einen Texteditor, um den Code durch die folgende IAM-Richtlinie zu ersetzen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "*" } ] }
-
Wählen Sie Richtlinie überprüfen aus.
-
Geben Sie unter Name einen Namen für die Richtlinie ein. Zum Beispiel: eks_update-kubeconfig.
-
Wählen Sie Richtlinie erstellen.
Hinweis: Wenn Sie die Multi-Faktor-Authentifizierung (MFA) für IAM-Benutzer erzwungen haben, die das AWS Command Line Interface (AWS CLI) verwenden, müssen Sie sich vor Abschluss des nächsten Schritts bei MFA authentifizieren. Eine ** explizite Ablehnungsmeldung** weist darauf hin, dass, wenn die MFA falsch ist, es eine IAM-Richtlinie gibt, die Aktionen ablehnt:{ "Version": "2012-10-17", "Statement": [ { "Sid": "BlockMostAccessUnlessSignedInWithMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ListUsers", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }
Da Sie ein MFA-Gerät verwenden, müssen Sie ein MFA-Token verwenden, um den Zugriff auf AWS-Ressourcen mit der AWS CLI zu authentifizieren. Befolgen Sie die Schritte im Artikel Wie verwende ich ein MFA-Token, um den Zugriff auf meine AWS-Ressourcen über die AWS CLI zu authentifizieren? Führen Sie dann den AWS CLI-Befehl sts get-session-token aus. Ersetzen Sie arn-of-the-mfa-device durch den ARN Ihres MFA-Geräts und code-from-token durch den Code Ihres Tokens:
$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
Sie können temporäre Anmeldeinformationen verwenden, indem Sie die Werte in Umgebungsvariablen exportieren.
Zum Beispiel:
$ export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output$ export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output$ export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output
-
Führen Sie den Befehl update-kubeconfig aus und bestätigen Sie, dass die Konfigurationsdatei unter ~/.kube/config aktualisiert wird. Ersetzen Sie region-code durch den Code Ihrer AWS-Region und cluster\ _name durch den Namen Ihres Clusters:
aws eks --region region-code update-kubeconfig --name cluster_name
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor 10 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren