Hilf 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.
Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
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-Anbieter
Amazon EKS unterstützt die Verwendung von OpenID-Connect(OIDC)-Identitätsanbietern als Methode zur Authentifizierung von Benutzern bei 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ähren Sie IAM-Benutzern und -Rollen Zugriff auf Kubernetes 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 unter Using RBAC Authorization
-
Sie können Ihrem Cluster einen OIDC-Identitätsanbieter zuordnen.
-
Kubernetes bietet keinen OIDC-Identitätsanbieter. 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. -
Die Aussteller-URL des OIDC-Identitätsanbieters muss öffentlich zugänglich sein, damit Amazon EKS die Signaturschlüssel erkennen kann. Amazon EKS unterstützt 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 Amazon EKS-Cluster muss weiterhin von einem AWS -IAM-Prinzipal erstellt werden und nicht von einem OIDC-Identitätsanbieter-Benutzer. Dies liegt daran, dass der Cluster-Ersteller mit Amazon EKS APIs und nicht mit APIs Kubernetes interagiert.
-
Benutzer, die vom OIDC-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 OIDC-Anbieters bei der anmelden. Sie können dies nur Sehen Sie sich die Kubernetes-Ressourcen an in der AWS Management Console tun, indem Sie sich AWS Management Console mit einem AWS Identity and Access Management-Konto anmelden.
Verknüpfen Sie einen OIDC-Identitätsanbieter
Bevor Sie Ihrem Cluster einen OIDC-Identitätsanbieter zuordnen können, benötigen Sie die folgenden Informationen von Ihrem Anbieter:
- 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 beginnenhttps://
und diesem entsprechen. Gemäß dem OIDC-Standard sind Pfadkomponenten erlaubt, Abfrageparameter jedoch nicht. Normalerweise besteht die URL nur aus einem Hostnamen wiehttps://server.example.org
oderhttps://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 mithilfe von eksctl einen Identitätsanbieter zu
-
Erstellen Sie eine Datei mit dem Namen
associate-identity-provider.yaml
und dem folgenden Inhalt. Ersetzen Sie dasexample values
durch Ihr eigenes. Die Werte im AbschnittidentityProviders
erhalten Sie von Ihrem OIDC-Identitätsanbieter. Werte werden nur für diename
-,type
-,issuerUrl
- undclientId
-Einstellungen unteridentityProviders
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ürgroupsPrefix
oder an.usernamePrefix
-
Erstellen Sie den Anbieter.
eksctl associate identityprovider -f associate-identity-provider.yaml
-
Informationen
kubectl
zur Verwendung mit Ihrem Cluster und Ihrem OIDC-Identitätsanbieter finden Sie unter Using kubectl in der Kubernetes-Dokumentation.
Ordnen Sie mithilfe der Konsole einen Identitätsanbieter zu AWS
-
Öffnen Sie die Amazon-EKS-Konsole
. -
Wählen Sie Ihren Cluster und dann die Registerkarte Zugriff aus.
-
Wählen Sie im Abschnitt OIDC Identity Provider* Associate Identity Provider* aus.
-
Geben Sie auf der Seite OIDC-Identitätsanbieter zuordnen die folgenden Optionen ein oder wählen Sie sie aus, und wählen Sie dann Zuordnen 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 die Client-ID des OIDC-Identitätsanbieters (auch bekannt als Audience) ein.
-
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 nichtsystem:
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 Wertoidc:
erstellt beispielsweise Gruppennamen wieoidc:engineering
undoidc:infra
. Geben Sie nichtsystem:
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.
-
Informationen
kubectl
zur Verwendung mit Ihrem Cluster und Ihrem OIDC-Identitätsanbieter finden Sie unter Using kubectl in der Kubernetes-Dokumentation.
-
-
-
Beispiel für eine IAM-Richtlinie
Wenn Sie verhindern möchten, dass ein OIDC-Identitätsanbieter mit einem Cluster verknüpft wird, erstellen Sie die folgende IAM-Richtlinie und verknüpfen Sie sie mit den IAM-Konten Ihrer Amazon-EKS-Administratoren. Weitere Informationen finden Sie unter Erstellen von IAM-Richtlinien und Hinzufügen von IAM-Identitätsberechtigungenim IAM-Benutzerhandbuch und unter Aktionenin der Referenz zur Serviceautorisierung.
{ "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
kubernetes
und issuerUrl
https://cognito-idp.us-west-2amazonaws.com/*
ist.
{ "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": "*" } ] }