Gewähren Sie Benutzern Zugriff Kubernetes auf einen externen OIDC Anbieter - Amazon EKS

Hilf mit, diese Seite zu verbessern

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.

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.

Gewähren Sie Benutzern Zugriff Kubernetes auf einen externen OIDC Anbieter

Amazon EKS unterstützt die Verwendung von OpenID Connect (OIDC) -Identitätsanbietern als Methode zur Authentifizierung von Benutzern in Ihrem Cluster. OIDCIdentitätsanbieter können zusammen mit oder als Alternative zu AWS Identity and Access Management (IAM) verwendet werden. Weitere Hinweise zur Verwendung von IAM finden Sie unterIAMBenutzern und Rollen Zugriff auf Kubernetes gewähren APIs. Nachdem Sie die Authentifizierung für Ihren Cluster konfiguriert haben, können Sie Kubernetes-roles und clusterroles erstellen, um den Rollen Berechtigungen zuzuweisen, und dann die Rollen mithilfe von Kubernetes-rolebindings und clusterrolebindings an die Identitäten binden. Weitere Informationen finden Sie in der Kubernetes Dokumentation unter Verwenden der RBAC Autorisierung.

Überlegungen
  • Sie können Ihrem Cluster einen einzelnen OIDC-Identitätsanbieter zuordnen.

  • Kubernetes stellt keinen OIDC-Identitätsanbieter bereit. Sie können einen vorhandenen öffentlichen OIDC-Identitätsanbieter verwenden oder Ihren eigenen Identitätsanbieter ausführen. Eine Liste zertifizierter Anbieter finden Sie unter OpenID-Zertifizierung auf der OpenID-Website.

  • Der Aussteller URL des OIDC Identitätsanbieters muss öffentlich zugänglich sein, damit Amazon die Signaturschlüssel ermitteln EKS kann. Amazon unterstützt EKS keine OIDC Identitätsanbieter mit selbstsignierten Zertifikaten.

  • Sie können die IAM Authentifizierung für Ihren Cluster nicht deaktivieren, da sie immer noch erforderlich ist, um Knoten zu einem Cluster hinzuzufügen.

  • Ein EKS Amazon-Cluster muss immer noch von einem AWS IAMPrincipal und nicht von einem OIDC Identity Provider-Benutzer erstellt werden. Dies liegt daran, dass der Cluster-Ersteller eher mit dem Amazon EKS APIs interagiert als mit dem KubernetesAPIs.

  • OIDCBenutzer, die vom Identitätsanbieter authentifiziert wurden, werden im Auditprotokoll des Clusters aufgeführt, wenn die CloudWatch Protokolle für die Kontrollebene aktiviert sind. Weitere Informationen finden Sie unter Aktivieren oder deaktivieren Sie die Protokolle der Kontrollebene.

  • Sie können sich nicht AWS Management Console mit einem Konto eines Anbieters bei der anmelden. OIDC Sie können KubernetesRessourcen in der Konsole nur anzeigen, wenn Sie sich AWS Management Console mit einem AWS Identity and Access Management Konto bei der anmelden.

Zuordnen eines OIDC-Identitätsanbieters

Bevor Sie Ihrem Cluster einen OIDC-Identitätsanbieter zuordnen können, benötigen Sie die folgenden Informationen von Ihrem Anbieter:

Emittent URL

Der URL des OIDC Identitätsanbieters, der es dem API Server ermöglicht, öffentliche Signaturschlüssel zur Überprüfung von Token zu ermitteln. Der URL muss mit dem iss Anspruch in den OIDC ID-Token des Anbieters beginnen https:// und diesem entsprechen. Gemäß dem OIDC Standard sind Pfadkomponenten zulässig, Abfrageparameter jedoch nicht. In der Regel URL besteht der nur aus einem Hostnamen wie https://server.example.org oderhttps://example.com. Dieser URL sollte auf die darunterliegende Ebene verweisen .well-known/openid-configuration und muss öffentlich über das Internet zugänglich sein.

Client-ID (auch als Zielgruppe bezeichnet)

Die ID für die Client-Anwendung, die Authentifizierungsanfragen an den OIDC Identitätsanbieter stellt.

Sie können einen Identitätsanbieter mit eksctl oder AWS Management Console zuordnen.

eksctl
So verwenden Sie eksctl, um Ihrem Cluster einen OIDC-Identitätsanbieter zuzuordnen
  1. Erstellen Sie eine Datei mit dem Namen associate-identity-provider.yaml mit den folgenden Inhalten. Ersetzen Sie das Beispielwerte mit deinen eigenen. Die Werte im Abschnitt identityProviders erhalten Sie von Ihrem OIDC-Identitätsanbieter. Werte werden nur für die name-, type-, issuerUrl- und clientId-Einstellungen unter identityProviders benötigt.

    --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: your-region-code identityProviders: - name: my-provider type: oidc issuerUrl: https://example.com clientId: kubernetes usernameClaim: email usernamePrefix: my-username-prefix groupsClaim: my-claim groupsPrefix: my-groups-prefix requiredClaims: string: string tags: env: dev
    Wichtig

    Geben Sie weder system: noch einen Teil dieser Zeichenfolge für groupsPrefix oder usernamePrefix an.

  2. Erstellen Sie den Anbieter.

    eksctl associate identityprovider -f associate-identity-provider.yaml
  3. Informationen zur Verwendung von kubectl für die Arbeit mit Ihrem Cluster und dem OIDC-Identitätsanbieter finden Sie in der Dokumentation zu Kubernetes unter Using kubectl.

AWS Management Console
Um Ihrem Cluster einen OIDC Identitätsanbieter zuzuordnen, verwenden Sie AWS Management Console
  1. Öffnen Sie die EKS Amazon-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie Ihren Cluster und dann den Tab Access aus.

  3. Wählen Sie im Abschnitt OIDCIdentity Providers die Option Associate Identity Provider aus.

  4. Geben Sie auf der Seite OIDC-Identitätsanbieter zuordnen die folgenden Optionen ein bzw. wählen Sie sie aus und wählen Sie anschließend Zuordnen aus.

    • Geben Sie für Name einen eindeutigen Namen für den Anbieter ein.

    • Geben Sie für Issuer URL den URL für Ihren Anbieter ein. Dies URL muss über das Internet zugänglich sein.

    • Geben Sie unter Client-ID die Client-ID des OIDC-Identitätsanbieters (auch als Zielgruppe bezeichnet) ein.

    • Geben Sie für Benutzernamenanspruch den Anspruch ein, der als Benutzername verwendet werden soll.

    • Geben Sie für Gruppenanspruch den Anspruch ein, der als Benutzergruppe verwendet werden soll.

    • (Optional) Wählen Sie Erweiterte Optionen, geben Sie die folgenden Informationen ein oder wählen Sie sie aus.

      • Benutzernamen-Präfix – Geben Sie ein Präfix ein, das den Benutzernamenansprüchen vorangestellt wird. Das Präfix wird den Benutzernamensansprüchen vorangestellt, um Konflikte mit bestehenden Namen zu vermeiden. Wenn Sie keinen Wert angeben und der Benutzername ein anderer Wert ist alsemail, wird als Präfix standardmäßig der Wert für URLIssuer verwendet. Sie können den Wert - verwenden, um alle Präfixe zu deaktivieren. Geben Sie weder system: noch einen Teil dieser Zeichenfolge an.

      • Gruppen-Präfix – Geben Sie ein Präfix ein, um Gruppenansprüchen voranzustellen. Das Präfix wird Gruppenansprüchen vorangestellt, um Konflikte mit vorhandenen Namen (wie z. B. system: groups) zu vermeiden. Der Wert oidc: erstellt beispielsweise Gruppennamen wie oidc:engineering und oidc:infra. Geben Sie weder system: noch einen Teil dieser Zeichenfolge an.

      • Erforderliche Ansprüche – Wählen Sie Anspruch hinzufügen aus, und geben Sie ein oder mehrere Schlüsselwertpaare ein, die erforderliche Ansprüche im Client-ID-Token beschreiben. Die Paare beschreiben die erforderlichen Ansprüche im ID-Token. Wenn festgelegt, wird überprüft, ob jeder Anspruch im ID-Token mit einem übereinstimmenden Wert vorhanden ist.

  5. Informationen zur Verwendung von kubectl für die Arbeit mit Ihrem Cluster und dem OIDC-Identitätsanbieter finden Sie in der Dokumentation zu Kubernetes unter Using kubectl.

Beispiel für IAM eine Richtlinie

Wenn Sie verhindern möchten, dass ein OIDC Identitätsanbieter einem Cluster zugeordnet wird, erstellen Sie die folgende IAM Richtlinie und verknüpfen Sie sie mit den IAM Konten Ihrer EKS Amazon-Administratoren. Weitere Informationen finden Sie unter IAMRichtlinien erstellen und IAMIdentitätsberechtigungen hinzufügen im IAM Benutzerhandbuch und Aktionen, Ressourcen und Bedingungsschlüssel für Amazon Elastic Kubernetes Service in der Service Authorization Reference.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "denyOIDC", "Effect": "Deny", "Action": [ "eks:AssociateIdentityProviderConfig" ], "Resource": "arn:aws:eks:us-west-2.amazonaws.com:111122223333:cluster/*" }, { "Sid": "eksAdmin", "Effect": "Allow", "Action": [ "eks:*" ], "Resource": "*" } ] }

Die folgende Beispielrichtlinie lässt die Zuordnung von OIDC-Identitätsanbietern zu, wenn clientID den Wert kubernetes und issuerUrl den Wert https://cognito-idp.us-west-2amazonaws.com/* hat.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCognitoOnly", "Effect": "Deny", "Action": "eks:AssociateIdentityProviderConfig", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-instance", "Condition": { "StringNotLikeIfExists": { "eks:issuerUrl": "https://cognito-idp.us-west-2.amazonaws.com/*" } } }, { "Sid": "DenyOtherClients", "Effect": "Deny", "Action": "eks:AssociateIdentityProviderConfig", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-instance", "Condition": { "StringNotEquals": { "eks:clientId": "kubernetes" } } }, { "Sid": "AllowOthers", "Effect": "Allow", "Action": "eks:*", "Resource": "*" } ] }

Von Partnern validierte OIDC-Identitätsanbieter

Amazon EKS unterhält Beziehungen zu einem Netzwerk von Partnern, die Unterstützung für kompatible OIDC Identitätsanbieter anbieten. Einzelheiten zur Integration des Identitätsanbieters in Amazon EKS finden Sie in der Dokumentation der folgenden Partner.

Partner Produkt Dokumentation

PingIdentity

PingOne für Unternehmen

Installationsanleitungen

Amazon EKS ist bestrebt, Ihnen eine große Auswahl an Optionen für alle Anwendungsfälle zu bieten. Wenn Sie einen kommerziell unterstützten OIDC kompatiblen Identitätsanbieter entwickeln, der hier nicht aufgeführt ist, wenden Sie sich an unser Partnerteam unter aws-container-partners@amazon .com, um weitere Informationen zu erhalten.