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éclare
kubernetesGroups: ["eks:managed"]. -
Vous créez un
Role(espace de noms) ouClusterRole(à 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, etverbsau plus petit ensemble qui débloque votre cas d'utilisation. Par exemple, accordezgetsur un seul objet nomméSecretplutôt quelist, watchsur tous lesSecretobjets. -
Supprimez
Roleles etRoleBindinglorsqu'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:managedgroupe est présent sur les clusters EKS Auto Mode dont le rôle est lié aux services.AWSServiceRoleForAmazonEKS -
Une liaison
eks:manageds'applique à chaque contrôleur géré en mode automatique EKS. Pour réduire le rayon d'explosion pratique, utilisez des objets enresourceNamesles nommant.RoleCela 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