View a markdown version of this page

Accordez un Kubernetes RBAC supplémentaire aux contrôleurs gérés EKS Auto Mode - Amazon EKS

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.

Accordez un Kubernetes RBAC supplémentaire aux contrôleurs gérés EKS Auto Mode

Amazon EKS Auto Mode gère les contrôleurs suivants pour votre compte : équilibrage de charge, mise en réseau, calcul, stockage par blocs et informations sur les clusters. Ces contrôleurs fonctionnent sur le plan de commande EKS. Ils s'authentifient auprès de votre cluster en tant que rôle AWSServiceRoleForAmazonEKS lié à un service, et leurs autorisations dans le cluster proviennent des politiques d'accès AWS gérées associées à cette entrée d'accès.

Vous pouvez étendre vous-même le Kubernetes RBAC d'un contrôleur géré. Cela est utile lorsque la politique gérée n'accorde pas encore l'autorisation requise, get par exemple pour une autorisation spécifiqueSecret.

Sur les clusters Amazon EKS Auto Mode, l'entrée d'accès créée automatiquement pour déclare AWSServiceRoleForAmazonEKS également le groupe Kubernetes. eks:managed Kubernetes RBAC est additif. Un RoleBinding (ouClusterRoleBinding) dont le subjects: nom du eks:managed groupe accorde aux contrôleurs gérés des autorisations supplémentaires en plus des politiques d'accès gérées.

Comment ça marche

  • Les contrôleurs gérés en mode automatique EKS se connectent à votre cluster en tant que rôle lié à un service. AWSServiceRoleForAmazonEKS

  • L'entrée d'accès créée automatiquement pour ce rôle déclarekubernetesGroups: ["eks:managed"].

  • Vous créez un Role (espace de noms) ou ClusterRole (à l'échelle du cluster) qui décrit l'autorisation supplémentaire, et unRoleBinding/ClusterRoleBindingdont le nom est le groupe. subjects: eks:managed

  • Kubernetes RBAC associe votre liaison aux politiques d'accès gérées, de sorte que les contrôleurs gérés reçoivent les deux ensembles d'autorisations.

Pour confirmer la présence du groupe, exécutez :

CLUSTER=<your-cluster> REGION=<your-region> ACCT=$(aws sts get-caller-identity --query Account --output text) aws eks describe-access-entry \ --cluster-name "$CLUSTER" --region "$REGION" \ --principal-arn "arn:aws:iam::${ACCT}:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS" \ --query 'accessEntry.kubernetesGroups'

Sortie attendue :

[ "eks:managed" ]

Élargissez la portée de la subvention

Le eks:managed groupe s'applique à tous les contrôleurs gérés en mode automatique EKS. Élargissez la portée de la subvention supplémentaire aussi étroitement que votre cas d'utilisation le permet, afin de n'exposer exactement que ce dont un contrôleur géré a besoin :

  • Préférez Role + RoleBinding (espace de noms) à ClusterRole + ClusterRoleBinding (à l'échelle du cluster).

  • Restreignez resourcesresourceNames, et verbs au plus petit ensemble qui débloque votre cas d'utilisation. Par exemple, accordez get sur un seul objet nommé Secret plutôt que list, watch sur tous les Secret objets.

  • Supprimez Role les et RoleBinding lorsqu'ils ne sont plus nécessaires.

Considérations relatives au mode automatique Amazon EKS

  • Ce mécanisme étend uniquement le Kubernetes RBAC des contrôleurs gérés en mode automatique EKS. Elle ne modifie pas les autorisations AWS IAM accordées par les politiques d'accès gérées.

  • Le eks:managed groupe est présent sur les clusters EKS Auto Mode dont le rôle est lié aux services. AWSServiceRoleForAmazonEKS

  • Une liaison eks:managed s'applique à chaque contrôleur géré en mode automatique EKS. Pour réduire le rayon d'explosion pratique, utilisez des objets en resourceNames les nommant. Role Cela n'expose que les ressources que vous nommez, et uniquement à travers les verbes que vous accordez.

  • Il s'agit d'un modèle de passerelle destiné aux cas où une politique d'accès géré ne couvre pas encore une autorisation dont vous avez besoin. Lorsqu'une politique AWS gérée couvre déjà l'autorisation, utilisez-la à la place.

Exemple

Pour une procédure pas à pas qui permet d'attribuer au contrôleur get d'équilibrage de charge EKS Auto Mode un OIDC Secret nommé, débloquant ainsi l'alb.ingress.kubernetes.io/auth-type: oidcannotation sur un ALB, voir. Ingress Autoriser le contrôleur d'équilibrage de charge en mode automatique EKS à accéder à un secret spécifique