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]
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
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
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
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)