Gewähren Sie Benutzern Zugriff auf Kubernetes mit einem externen OIDC provider - Amazon EKS

Helfen Sie mit, diese Seite 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.

Möchten Sie zu diesem Benutzerhandbuch beitragen? Wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet. Ihre Beiträge werden dazu beitragen, dass unser Benutzerhandbuch für alle besser wird.

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 auf Kubernetes mit einem externen OIDC provider

Amazon EKS unterstützt die Verwendung von OpenID Connect (OIDC) Identitätsanbieter als Methode zur Authentifizierung von Benutzern in Ihrem Cluster. OIDC Identitätsanbieter können zusammen mit oder als Alternative zu AWS Identity and Access Management (IAM) verwendet werden. Weitere Informationen zur Verwendung von IAM finden Sie unter Gewährung IAM Benutzer- und Rollenzugriff auf Kubernetes APIs. Nachdem Sie die Authentifizierung für Ihren Cluster konfiguriert haben, können Sie Folgendes erstellen Kubernetes rolesund clusterroles um den Rollen Berechtigungen zuzuweisen und dann die Rollen mit den Identitäten zu verknüpfen Kubernetes rolebindings und clusterrolebindings. Weitere Informationen finden Sie unter Verwenden der RBAC-Autorisierung im Kubernetes -Dokumentation.

  • Sie können einen zuordnen OIDC Identitätsanbieter für Ihren Cluster.

  • Kubernetes bietet kein OIDC Identitätsanbieter. Sie können eine bestehende Öffentlichkeit verwenden OIDC Identitätsanbieter, oder Sie können Ihren eigenen Identitätsanbieter betreiben. Eine Liste zertifizierter Anbieter finden Sie unter OpenID-Zertifizierung auf der OpenID-Website.

  • Die Aussteller-URL des OIDC Der Identitätsanbieter muss öffentlich zugänglich sein, damit Amazon EKS die Signaturschlüssel ermitteln kann. Amazon EKS unterstützt nicht 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 Amazon EKS-Cluster muss immer noch von einem AWS IAM-Prinzipal erstellt werden und nicht von einem OIDC Benutzer des Identitätsanbieters. Das liegt daran, dass der Cluster-Ersteller mit dem Amazon EKS interagiert APIs und nicht mit Kubernetes APIs.

  • OIDC Benutzer, die vom Identitätsanbieter authentifiziert wurden, werden im Audit-Protokoll 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 von einem anmelden OIDC Anbieter. Sie können dies nur Anzeigen Kubernetes Ressourcen in der AWS Management Console tun, indem Sie sich AWS Management Console mit einem AWS Identity and Access Management-Konto anmelden.

Ordnen Sie einen zu OIDC Identitätsanbieter

Bevor Sie eine zuordnen können OIDC Für Ihren Cluster benötigen Sie die folgenden Informationen von Ihrem Identitätsanbieter:

URL des Ausstellers

Die URL des OIDC-Identitätsanbieters, die es dem API-Server ermöglicht, öffentliche Signierschlüssel zur Verifizierung von Token zu ermitteln. Die URL muss mit dem iss Anspruch in den OIDC-ID-Token des Anbieters beginnen https:// und diesem entsprechen. Gemäß dem OIDC-Standard sind Pfadkomponenten erlaubt, Abfrageparameter jedoch nicht. Normalerweise besteht die URL nur aus einem Hostnamen wie https://server.example.org oder https://example.com . Diese URL sollte auf die Ebene unterhalb von .well-known/openid-configuration verweisen und muss über das Internet öffentlich zugänglich sein.

Client-ID (auch bekannt als Zielgruppe)

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

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

Ordnen Sie mit eksctl einen Identitätsanbieter zu

  1. Erstellen Sie eine Datei mit dem Namen associate-identity-provider.yaml und dem folgenden Inhalt. Ersetzen Sie das example values durch Ihr eigenes. Die Werte in identityProviders diesem Abschnitt stammen 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 system: nicht oder einen Teil dieser Zeichenfolge für groupsPrefix oder anusernamePrefix.

  2. Erstellen Sie den Anbieter.

    eksctl associate identityprovider -f associate-identity-provider.yaml
  3. Um es kubectl für die Arbeit mit Ihrem Cluster zu verwenden und OIDC Identitätsanbieter finden Sie unter Using kubectl im Kubernetes -Dokumentation.

Ordnen Sie mithilfe der Konsole einen Identitätsanbieter zu AWS

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

  2. Wählen Sie Ihren Cluster und dann die Registerkarte Zugriff aus.

  3. In der OIDC Wählen Sie im Bereich Identity Providers die Option Associate Identity Provider aus.

  4. Im Bereich Associate OIDC Geben Sie auf der Seite Identity Provider die folgenden Optionen ein, oder wählen Sie sie aus, und wählen Sie dann Assoziieren aus.

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

    • Geben Sie für Aussteller-URL die URL Ihres Anbieters ein. Diese URL muss über das Internet zugänglich sein.

    • Geben Sie als Client-ID den OIDC Die Client-ID des Identitätsanbieters (auch bekannt als Zielgruppe).

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

    • Geben Sie unter 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 als email ist, wird als Präfix standardmäßig der Wert für die Aussteller-URL verwendet. Sie können den Wert - verwenden, um alle Präfixe zu deaktivieren. Geben Sie diese Zeichenfolge nicht system: oder nur einen Teil davon 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 nicht system: oder nur 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.

        1. Um es kubectl für die Arbeit mit Ihrem Cluster zu verwenden und OIDC Identitätsanbieter finden Sie unter Using kubectl im Kubernetes -Dokumentation.

Beispiel für eine IAM-Richtlinie

Wenn Sie verhindern möchten OIDC Bevor ein Identitätsanbieter mit einem Cluster verknüpft ist, erstellen Sie die folgende IAM-Richtlinie und ordnen Sie sie den IAM-Konten Ihrer Amazon EKS-Administratoren zu. Weitere Informationen finden Sie unter Erstellen von IAM-Richtlinien und Hinzufügen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch und unter Aktionen in der Serviceautorisierungsreferenz.

{ "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 ermöglicht OIDC Zuordnung des Identitätsanbieters zwischen „clientIDis“ kubernetes und „issuerUrlis https://cognito-idp.us-west-2amazonaws.com/* “.

{ "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": "*" } ] }

Der Partner wurde validiert OIDC Identitätsanbieter

Amazon EKS unterhält Beziehungen zu einem Netzwerk von Partnern, die Support für kompatible OIDC Identitätsanbieter. Weitere Details zur Integration des Identitätsanbieters in der Dokumentation der folgenden Partner mit Amazon EKS.

Partner Produkt Dokumentation

PingIdentity

PingOne für Unternehmen

Installationsanleitungen

Amazon EKS bemüht sich, Ihnen eine große Auswahl an Optionen zu bieten, um alle Anwendungsfälle abzudecken. Wenn Sie ein kommerziell unterstütztes entwickeln OIDC Ein kompatibler Identitätsanbieter, der hier nicht aufgeführt ist, kontaktieren Sie unser Partnerteam unter aws-container-partners@amazon. com für weitere Informationen.