Erstellen Sie einen IAM-OIDC-Anbieter für Ihren Cluster - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.

Erstellen Sie einen IAM-OIDC-Anbieter für Ihren Cluster

Ihrem Cluster ist eine OpenID Connect (OIDC)-Aussteller-URL zugeordnet. Um AWS Identity and Access Management (IAM)-Rollen für Servicekonten zu verwenden, muss ein IAM-OIDC-Anbieter für die OIDC-Aussteller-URL Ihres Clusters vorhanden sein.

  • Ein vorhandener Amazon-EKS-Cluster. Informationen zum Bereitstellen finden Sie unter Erste Schritte mit Amazon EKS.

  • Version 2.12.3 oder höher oder die Version 1.27.160 oder höher der AWS-Befehlszeilenschnittstelle (AWS-CLI), die auf Ihrem Gerät oder in AWS CloudShell installiert und konfiguriert sein muss. Um Ihre aktuelle Version zu überprüfen, verwenden Sie aws --version | cut -d / -f2 | cut -d ' ' -f1. Paket-Manager wie yum, apt-get oder Homebrew für macOS sind oft mehrere Versionen hinter der neuesten Version der AWS-CLI. Um die neueste Version zu installieren, lesen Sie Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle. Die in AWS CloudShell installierte AWS-CLI-Version kann auch mehrere Versionen hinter der neuesten Version liegen. Informationen zum Aktualisieren finden Sie unter Installieren der AWS CLI in Ihrem Stammverzeichnis im AWS-CloudShell-Benutzerhandbuch.

  • Das kubectl-Befehlszeilen-Tool ist auf Ihrem Gerät oder in AWS CloudShell installiert. Die Version kann mit der Kubernetes-Version Ihres Clusters identisch sein oder bis zu einer Nebenversion älter oder neuer sein. Wenn Ihre Clusterversion beispielsweise 1.29 ist, können Sie kubectl-Version 1.28, 1.29, oder 1.30 damit verwenden. Informationen zum Installieren oder Aktualisieren von kubectl finden Sie unter kubectl und eksctl einrichten.

  • Eine vorhandene kubectl config-Datei, die Ihre Clusterkonfiguration enthält. Informationen zum Erstellen einer kubectl config-Datei finden Sie unter kubectl mit einem EKS-Cluster durch Erstellen einer kubeconfig-Datei verbinden.

Sie können einen IAM-OIDC-Anbieter für Ihren Cluster mit eksctl oder AWS-Managementkonsole erstellen.

OIDC-Anbieter erstellen (eksctl)

  1. Version 0.214.0 oder höher des auf Ihrem Gerät oder in AWS CloudShell installierten eksctl-Befehlszeilen-Tools. Informationen zum Installieren und Aktualisieren von eksctl finden Sie in der Dokumentation zu eksctl unter Installation.

  2. Ermitteln Sie die OIDC-Aussteller-ID für Ihren Cluster.

    Rufen Sie die OIDC-Aussteller-ID Ihres Clusters ab und speichern Sie sie in einer Variable. Ersetzen Sie <my-cluster> durch Ihren eigenen Wert.

    cluster_name=<my-cluster> oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5) echo $oidc_id
  3. Bestimmen Sie, ob ein IAM-OIDC-Anbieter mit der Aussteller-ID Ihres Clusters bereits in Ihrem Konto vorhanden ist.

    aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4

    Wenn die Ausgabe zurückgegeben wird, verfügen Sie bereits über einen IAM-OIDC-Anbieter für Ihren Cluster und können den nächsten Schritt überspringen. Wenn keine Ausgabe erfolgt, müssen Sie einen IAM-OIDC-Anbieter für Ihr Cluster erstellen.

  4. Erstellen Sie einen IAM-OIDC-Identitätsanbieter für Ihren Cluster mit dem folgenden Befehl.

    eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
    Anmerkung

    Wenn Sie den EKS-VPC-Endpunkt aktiviert haben, kann von innerhalb dieser VPC nicht auf den EKS-OIDC-Service-Endpunkt zugegriffen werden. Folglich funktionieren Ihre Operationen wie das Erstellen eines OIDC-Anbieters mit eksctl in der VPC nicht und führen zu einem Timeout. Es folgt ein Beispiel für eine Fehlermeldung:

    ** server cant find oidc.eks.<region-code>.amazonaws.com: NXDOMAIN

    Um diesen Schritt abzuschließen, können Sie den Befehl außerhalb der VPC ausführen, beispielsweise in AWS CloudShell oder auf einem mit dem Internet verbundenen Computer. Alternativ können Sie einen Split-Horizon-Conditional-Resolver in der VPC erstellen, z. B. Route 53 Resolver, um einen anderen Resolver für die OIDC-Aussteller-URL zu verwenden und dafür nicht das VPC-DNS zu nutzen. Ein Beispiel für die bedingte Weiterleitung in CoreDNS finden Sie in der Amazon-EKS-Feature-Anforderung auf GitHub.

OIDC-Anbieter erstellen (AWS-Konsole)

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie im linken Bereich Cluster aus und wählen Sie dann den Namen Ihres Clusters auf der Seite Cluster.

  3. Notieren Sie im Abschnitt Details der Registerkarte Overview (Übersicht) den Wert der OpenID-Connect-Provider-URL.

  4. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  5. Wählen Sie im linken Navigationsbereich Identity Providers (Identitätsanbieter) unter Access management (Zugriffsverwaltung) aus. Wenn ein Anbieter aufgeführt ist, der mit der URL für Ihren Cluster übereinstimmt, haben Sie bereits einen Anbieter für Ihren Cluster. Wenn kein Anbieter aufgeführt ist, der mit der URL für Ihren Cluster übereinstimmt, müssen Sie einen erstellen.

  6. Um einen Anbieter zu erstellen, wählen Sie Add provider (Anbieter hinzufügen) aus.

  7. Wählen Sie als Anbietertyp die Option OpenID Connect aus.

  8. Geben Sie für Anbieter URL die OIDC-Anbieter-URL für Ihren Cluster ein.

  9. Geben Sie für Zielgruppe sts.amazonaws.com ein

  10. (Optional) Fügen Sie beliebige Tags hinzu, beispielsweise ein Tag, um zu identifizieren, welcher Cluster für diesen Anbieter ist.

  11. Wählen Sie Add provider (Anbieter hinzufügen) aus.

Nächster Schritt: IAM-Rollen Kubernetes-Servicekonten zuweisen