DEV Community

Cover image for Vérifier les droits d'un utilisateur dans Kubernetes
Maxime Guilbert
Maxime Guilbert

Posted on

Vérifier les droits d'un utilisateur dans Kubernetes

Quand on travaille avec un cluster Kubernetes, il se peut qu'on ne se rappelle plus quels sont les droits RBAC que l'on a donné à un utilisateur ou un service account.

Du coup, si on a besoin de savoir si un utilisateur possède des droits sur une action spécifique, au lieu d'aller fouiller dans les RBAC à trouver les droits, on peut utiliser kubectl auth can-i.

Détail de la commande

Utilisateur courant

kubectl auth can-i [action] [ressource]
Enter fullscreen mode Exit fullscreen mode

Présenté sous ce format, la commande va vous permettre de savoir si l'utilisateur avec lequel vous êtes actuellement connecté sur le cluster possède le droit d'effectuer l'action définie sur la ressource définie.

Exemple pour vérifier si l'utilisateur courant peut créer un pod :

kubectl auth can-i create pod
Enter fullscreen mode Exit fullscreen mode

Le résultat que vous obtiendrez sera un simple yes si vous avez le droit. no si vous ne l'avez pas.

Vérifier dans un cluster particulier

La commande définie ci-dessus permet de vérifier les ressources qui ont un scope cluster, ou celles qui ont un scope namespace et qui sont dans le namespace default.

Pour pouvoir vérifier les droits dans un namespace particulier, ajouter l'option --namespace [nom du namespace].

Vérifier pour un autre utilisateur

Si jamais vous voulez vérifier les droits d'un autre utilisateur, vous pouvez ajouter à la fin l'option --as suivi du nom de l'utilisateur qui vous intéresse.

Exemple où l'on veut vérifier si toto peut lister les déploiements:

kubectl auth can-i list deployment --as toto
Enter fullscreen mode Exit fullscreen mode

Vérifier pour un service account

Pour se faire passer pour un service account, il faut aussi utiliser l'option --as, sauf qu'il faut donner une valeur suivant le modèle suivant : system:serviceaccount:[namespace]:[nom service account].

Exemple où l'on veut vérifier si le service account titi dans le namespace test peut supprimer une configmap :

kubectl auth can-i delete configmap --as system:serviceaccount:test:titi
Enter fullscreen mode Exit fullscreen mode

Références


Et voilà, c'est aussi simple que ça et toujours très pratique pour faire quelques validations rapides.


J'espère que ça vous aidera et si jamais vous avez des questions, quelles qu'elles soient (Il n'y a jamais de questions bêtes!) ou des points qui ne sont pas clairs pour vous, n'hésitez pas à laisser un message dans les commentaires ou à me joindre directement sur LinkedIn (même pour parler d'autres sujets!).

Top comments (0)