Unterstützung für die Verbesserung dieser Seite beitragen
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.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, 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 dem EKS Auto Mode Load Balancer-Controller Zugriff auf ein bestimmtes Secret
In diesem Tutorial gewähren Sie dem Amazon EKS Auto Mode Load Balancer-Controller Lesezugriff auf ein bestimmtes Kubernetes. Secret Dadurch wird die OIDC-Authentifizierung auf einem ALB entsperrt. Ingress Sie verwenden einen Role Namespace-Bereich, der auf die Gruppe ausgerichtet ist. RoleBinding eks:managed
Die Fertigstellung dieses Tutorials dauert ungefähr 15 Minuten. Für die Kubernetes-RBAC-Objekte, die Sie erstellen, fallen keine Gebühren an. AWS
Der Amazon EKS Auto Mode Load Balancer-Controller unterstützt die OIDC-Authentifizierung für ALB-Objekte. Ingress Es verwendet die alb.ingress.kubernetes.io/auth-type: oidc Anmerkung, um diese Authentifizierung zu aktivieren. Um die OIDC-Konfiguration aufzulösen, liest der Controller ein Kubernetes, das in der Anmerkung Secret benannt ist. alb.ingress.kubernetes.io/auth-idp-oidc Die Richtlinie für verwalteten Zugriff gewährt derzeit keine Secret Objekte. Daher schlägt get der Abgleich fehl und es wird eine Meldung ähnlich der folgenden angezeigt:
Failed build model due to ingress: <ns>/<name>: secrets "<secret>" is forbidden: User "arn:aws:sts::<acct>:assumed-role/AWSServiceRoleForAmazonEKS/<session>" cannot get resource "secrets" in API group "" in the namespace "<ns>"
Mithilfe des unter beschriebenen Mechanismus können Sie dem verwalteten Controller get genau den OIDC Secret gewähren, den er benötigt. Gewähren Sie verwalteten EKS Auto Mode-Controllern zusätzliche Kubernetes-RBAC
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie:
-
Ein Amazon EKS-Auto-Mode-Cluster mit dem automatisch erstellten
AWSServiceRoleForAmazonEKSZugriffseintrag. -
kubectlkonfiguriert mit Clusterzugriff. -
Die AWS CLI wurde installiert und mit den Berechtigungen für
aws sts get-caller-identityund konfiguriertaws eks describe-access-entry. -
Ein ALB
Ingress, das diealb.ingress.kubernetes.io/auth-type: oidcAnnotation verwendet, und die KubernetesSecret, auf die es verweist.
Schritt 1: Identifizieren Sie den Secret, der zur Zulassungsliste hinzugefügt werden soll
Die OIDC-Konfiguration auf einem ALB Ingress sieht wie folgt aus. Notieren Sie sich den Secret Namen und den Ingress Namespace — die RBAC-Objekte müssen sich im selben Namespace wie der befinden. Secret
annotations: alb.ingress.kubernetes.io/auth-type: oidc alb.ingress.kubernetes.io/auth-idp-oidc: > { "issuer": "...", "authorizationEndpoint": "...", "tokenEndpoint": "...", "userInfoEndpoint": "...", "secretName": "oidc" }
Im Rest dieses Beispiels werden Namespace und Name verwendet. monitoring Secret oidc
Schritt 2: Wenden Sie eine Rolle mit Namespace-Gültigkeitsbereich an und RoleBinding
Dieses Formular gewährt genau den Namen in genau get einem Namespace. Secret Speichern Sie Folgendes unter: eks-managed-oidc-secret-reader.yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: eks-managed-oidc-secret-reader namespace: monitoring rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["oidc"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: eks-managed-oidc-secret-reader namespace: monitoring subjects: - kind: Group name: eks:managed apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: eks-managed-oidc-secret-reader apiGroup: rbac.authorization.k8s.io
Wenden Sie es an:
kubectl apply -f eks-managed-oidc-secret-reader.yaml
Wenn Sie der Zulassungsliste später weitere Secret Objekte hinzufügen möchten, fügen Sie deren Namen an die Role’s `resourceNames Liste an und wenden Sie sie erneut an.
Schritt 3: Bestätigen Sie, dass Ingress wiederhergestellt wird
Der Load Balancer-Controller gleicht das bei seinem nächsten Durchlauf (in der Ingress Regel innerhalb weniger Minuten) erneut ab. Wenn der Grant funktioniert, wird der vorherige secrets "oidc" is forbidden Fehler nicht mehr auf dem angezeigt Ingress und der Load Balancer arbeitet weiter. Wenn der Fehler weiterhin besteht, überprüfen Sie dasRole’s `namespace, resourceNames und den Betreff erneut. RoleBinding
Den Zuschuss entfernen
Wichtig
Halten Sie das Role und so lange RoleBinding an Ort und Stelle, wie das ALB es Ingress verwendetalb.ingress.kubernetes.io/auth-type: oidc. Wenn Sie sie entfernen, wird die OIDC-Resolution auf dem erneut unterbrochen. Ingress
Wenn Sie OIDC auf dem nicht mehr verwenden, entfernen Sie den Ingress Zuschuss:
kubectl delete rolebinding eks-managed-oidc-secret-reader -n monitoring kubectl delete role eks-managed-oidc-secret-reader -n monitoring
Zugehörige Ressourcen
-
Gewähren Sie verwalteten EKS Auto Mode-Controllern zusätzliche Kubernetes-RBAC— Konzeptioneller Überblick über die
eks:managedGruppe und den Umfang der Zuschüsse. -
IAM-Benutzern mit EKS-Zugriffseinträgen Zugriff auf Kubernetes gewähren— Amazon EKS-Zugriffseinträge.
-
Verwendung der RBAC-Autorisierung
in der Kubernetes-Dokumentation.