Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Autoriser le contrôleur d'équilibrage de charge en mode automatique EKS à accéder à un secret spécifique
Dans ce didacticiel, vous accordez au contrôleur d'équilibrage de charge Amazon EKS Auto Mode l'accès en lecture à un Secret Kubernetes spécifique. Cela débloque l'authentification OIDC sur un ALB. Ingress Vous utilisez un espace de noms limité Role et RoleBinding ciblé sur le groupe. eks:managed
Ce didacticiel dure environ 15 minutes. Les objets Kubernetes RBAC que vous créez ne sont pas payants. AWS
Le contrôleur d'équilibrage de charge Amazon EKS Auto Mode prend en charge l'authentification OIDC sur les objets Ingress ALB. Il utilise l'alb.ingress.kubernetes.io/auth-type: oidcannotation pour activer cette authentification. Pour résoudre la configuration OIDC, le contrôleur lit un Kubernetes Secret nommé dans l'annotation. alb.ingress.kubernetes.io/auth-idp-oidc Sa politique d'accès géré n'autorise get actuellement aucun Secret objet. Le réconciliateur échoue donc avec un message similaire à :
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>"
À l'aide du mécanisme décrit dansAccordez un Kubernetes RBAC supplémentaire aux contrôleurs gérés EKS Auto Mode, vous pouvez attribuer au contrôleur géré exactement get l'OIDC dont Secret il a besoin.
Conditions préalables
Avant de commencer, assurez-vous d'avoir :
-
Un cluster Amazon EKS Auto Mode avec l'entrée d'
AWSServiceRoleForAmazonEKSaccès créée automatiquement. -
kubectlconfiguré avec un accès au cluster. -
La AWS CLI est installée et configurée avec des autorisations pour
aws sts get-caller-identityetaws eks describe-access-entry. -
Un ALB
Ingressqui utilise l'alb.ingress.kubernetes.io/auth-type: oidcannotation et leSecretKubernetes auquel il fait référence.
Étape 1 : Identifiez le secret à ajouter à la liste des autorisations
La configuration OIDC sur un ALB Ingress ressemble à ce qui suit. Enregistrez le Secret nom et l'Ingressespace de noms : les objets RBAC doivent se trouver dans le même espace de noms que le. Secret
annotations: alb.ingress.kubernetes.io/auth-type: oidc alb.ingress.kubernetes.io/auth-idp-oidc: > { "issuer": "...", "authorizationEndpoint": "...", "tokenEndpoint": "...", "userInfoEndpoint": "...", "secretName": "oidc" }
Le reste de cet exemple utilise l'espace de noms monitoring et Secret le nomoidc.
Étape 2 : appliquez un rôle limité à l'espace de noms et RoleBinding
Ce formulaire attribue exactement get le nom Secret dans un seul espace de noms. Enregistrez les informations suivantes sous 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
Appliquez-le :
kubectl apply -f eks-managed-oidc-secret-reader.yaml
Pour ajouter d'autres Secret objets à la liste d'autorisation ultérieurement, ajoutez leurs noms à la Role’s `resourceNames liste et présentez une nouvelle demande.
Étape 3 : Confirmez que l'entrée est rétablie
Le contrôleur d'équilibrage de charge les réconcilie Ingress lors de son prochain passage (généralement en quelques minutes). Lorsque la subvention fonctionne, l'secrets "oidc" is forbiddenerreur précédente cesse d'apparaître Ingress et l'équilibreur de charge progresse. Si l'erreur persiste, revérifiez le Role’s `namespaceresourceNames, et le RoleBinding sujet.
Supprimer la subvention
Important
Maintenez Role le sable RoleBinding en place aussi longtemps que l'ALB l'Ingressutilisealb.ingress.kubernetes.io/auth-type: oidc. Leur suppression interrompt à nouveau la résolution OIDC sur le. Ingress
Si vous arrêtez d'utiliser OIDC sur leIngress, supprimez la subvention :
kubectl delete rolebinding eks-managed-oidc-secret-reader -n monitoring kubectl delete role eks-managed-oidc-secret-reader -n monitoring
Ressources connexes
-
Accordez un Kubernetes RBAC supplémentaire aux contrôleurs gérés EKS Auto Mode— Aperçu conceptuel du
eks:managedgroupe et de la définition des subventions. -
Attribution de l’accès Kubernetes aux utilisateurs IAM avec les entrées d’accès EKS— Entrées d'accès Amazon EKS.
-
Utilisation de l'autorisation RBAC
dans la documentation Kubernetes.