Comprendre les rôles RBAC et les utilisateurs créés par Amazon EKS - 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 sur 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.

Comprendre les rôles RBAC et les utilisateurs créés par Amazon EKS

Lorsque vous créez un cluster Kubernetes, plusieurs identités Kubernetes par défaut sont créées sur ce cluster afin d’assurer le bon fonctionnement de Kubernetes. Amazon EKS crée des identités Kubernetes pour chacun de ses composants par défaut. Les identités fournissent un contrôle d’autorisation basé sur les rôles (RBAC) Kubernetes pour les composants du cluster. Pour plus d'informations, consultez Utilisation de l'autorisation RBAC dans la documentation Kubernetes.

Lorsque vous installez des modules complémentaires optionnels sur votre cluster, des identités Kubernetes supplémentaires peuvent être ajoutées à votre cluster. Pour plus d'informations sur les identités non abordées dans cette rubrique, consultez la documentation du module complémentaire.

Vous pouvez consulter la liste des identités Kubernetes créées par Amazon EKS sur votre cluster à l'aide de l'outil de ligne de kubectl commande AWS Management Console or. Toutes les identités des utilisateurs apparaissent dans les journaux kube d'audit mis à votre disposition via Amazon CloudWatch.

AWS Management Console

Prérequis

Le principal IAM que vous utilisez doit disposer des autorisations décrites dans la section Autorisations requises.

Pour consulter les identités créées par Amazon EKS à l'aide du AWS Management Console

  1. Ouvrez la console Amazon EKS.

  2. Dans la liste Clusters, sélectionnez le cluster qui contient les identités que vous souhaitez afficher.

  3. Sélectionnez l'onglet Ressources.

  4. Sous Resource types (Types de ressources), sélectionnez Authorization (Autorisation).

  5. Choisissez, ClusterRolesClusterRoleBindings, Rôles ou RoleBindings. Toutes les ressources précédées de eks sont créées par Amazon EKS. Les ressources d'identité supplémentaires créées par Amazon EKS sont les suivantes :

    • Le ClusterRoleet ClusterRoleBindingnommé aws-node. Les ressources aws-node prennent en charge le plug-in Amazon VPC CNI pour Kubernetes, qu’Amazon EKS installe sur tous les clusters.

    • Un ClusterRolenom vpc-resource-controller-roleet un ClusterRoleBindingnom vpc-resource-controller-rolebinding. Ces ressources prennent en charge le contrôleur de ressources Amazon VPC, qu'Amazon EKS installe sur tous les clusters.

    Outre les ressources que vous voyez dans la console, les identités utilisateur spéciales suivantes existent sur votre cluster, bien qu’elles ne soient pas visibles dans la configuration du cluster :

    • eks:cluster-bootstrap  : utilisé pour les opérations kubectl pendant le démarrage du cluster.

    • eks:support-engineer  : utilisée pour les opérations de gestion des clusters.

  6. Choisissez une ressource spécifique pour afficher les détails la concernant. Par défaut, les informations s’affichent en mode Structured view (Vue structurée). Dans le coin supérieur droit de la page de détails, vous pouvez sélectionner Raw view (Vue brute) pour afficher toutes les informations relative à la ressource.

Kubectl

Prérequis

L'entité que vous utilisez (AWS Identity and Access Management (IAM) ou OpenID Connect (OIDC)) pour répertorier les ressources Kubernetes du cluster doit être authentifiée par IAM ou par votre fournisseur d'identité OIDC. L’entité doit disposer des autorisations nécessaires pour utiliser Kubernetes get et les verbes list pour les ressources Role, ClusterRole, RoleBinding, et ClusterRoleBinding de votre cluster avec lesquelles vous souhaitez que l’entité fonctionne. Pour plus d'informations sur la façon dont vous pouvez autoriser votre cluster à accéder aux entités IAM, consultez Accorder aux utilisateurs et aux rôles IAM l'accès à Kubernetes APIs. Pour plus d’informations sur l’octroi à des entités authentifiées par votre propre fournisseur OIDC d’un accès à votre cluster, consultez Accès des utilisateurs à Kubernetes via un fournisseur OIDC externe.

Pour consulter les identités créées par Amazon EKS à l'aide de kubectl

Exécutez la commande correspondant au type de ressource que vous souhaitez consulter. Toutes les ressources renvoyées qui sont précédées de eks sont créées par Amazon EKS. Outre les ressources renvoyées dans la sortie des commandes, les identités d’utilisateur spéciales suivantes sont disponibles sur votre cluster, même si elles n’apparaissent pas dans la configuration du cluster :

  • eks:cluster-bootstrap  : utilisé pour les opérations kubectl pendant le démarrage du cluster.

  • eks:support-engineer  : utilisée pour les opérations de gestion des clusters.

ClusterRolesClusterRoles sont limités à votre cluster, de sorte que toute autorisation accordée à un rôle s'applique aux ressources de n'importe quel espace de noms Kubernetes du cluster.

La commande suivante renvoie tous les ClusterRoles Kubernetes créés par Amazon EKS sur votre cluster.

kubectl get clusterroles | grep eks

Outre les ClusterRoles renvoyés dans la sortie, les ClusterRoles suivants sont disponibles.

Pour voir la spécification de aClusterRole, remplacez eks:k8s-metrics la commande suivante par un ClusterRole renvoyé dans la sortie de la commande précédente. L'exemple suivant renvoie la spécification du eks:k8s-metricsClusterRole.

kubectl describe clusterrole eks:k8s-metrics

L'exemple qui suit illustre un résultat.

Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- [/metrics] [] [get] endpoints [] [] [list] nodes [] [] [list] pods [] [] [list] deployments.apps [] [] [list]

ClusterRoleBindingsClusterRoleBindings sont limités à votre cluster.

La commande suivante renvoie tous les Kubernetes ClusterRoleBindings créés par Amazon EKS sur votre cluster.

kubectl get clusterrolebindings | grep eks

En plus des ClusterRoleBindings renvoyés dans la sortie, les ClusterRoleBindings suivants sont disponibles.

Pour voir la spécification de aClusterRoleBinding, remplacez eks:k8s-metrics la commande suivante par un ClusterRoleBinding renvoyé dans la sortie de la commande précédente. L'exemple suivant renvoie la spécification du eks:k8s-metricsClusterRoleBinding.

kubectl describe clusterrolebinding eks:k8s-metrics

L'exemple qui suit illustre un résultat.

Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: ClusterRole Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics

Rôles : les Roles sont limités à un espace de noms Kubernetes. Tous les Roles créés par Amazon EKS sont limités à l'espace de noms kube-system.

La commande suivante renvoie tous les Kubernetes Roles créés par Amazon EKS sur votre cluster.

kubectl get roles -n kube-system | grep eks

Pour voir la spécification de aRole, remplacez eks:k8s-metrics la commande suivante par le nom de a Role renvoyé dans le résultat de la commande précédente. L'exemple suivant renvoie la spécification du eks:k8s-metricsRole.

kubectl describe role eks:k8s-metrics -n kube-system

L'exemple qui suit illustre un résultat.

Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- daemonsets.apps [] [aws-node] [get] deployments.apps [] [vpc-resource-controller] [get]

RoleBindingsRoleBindings sont limités à un espace de noms Kubernetes. Tous les RoleBindings créés par Amazon EKS sont limités à l'espace de noms kube-system.

La commande suivante renvoie tous les Kubernetes RoleBindings créés par Amazon EKS sur votre cluster.

kubectl get rolebindings -n kube-system | grep eks

Pour voir la spécification de aRoleBinding, remplacez eks:k8s-metrics la commande suivante par un RoleBinding renvoyé dans la sortie de la commande précédente. L'exemple suivant renvoie la spécification du eks:k8s-metricsRoleBinding.

kubectl describe rolebinding eks:k8s-metrics -n kube-system

L'exemple qui suit illustre un résultat.

Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: Role Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics