2
votes

Comment afficher les autorisations / rôles associés à un compte de service spécifique dans k8s?

J'ai essayé avec la commande kubectl get sa default , mais je ne vois que quelques valeurs très basiques. Quelle est la commande pour afficher les autorisations / rôles associés à un compte de service spécifique dans k8s?


0 commentaires

4 Réponses :


1
votes

Dans Kubernetes, le compte de service est mappé aux privilèges (au niveau du cluster ou au niveau de l'espace de noms) à l'aide de l'objet ClusterRoleBinding. Vous devez rechercher l'objet RoleBinding ou ClusterRoleBinding, puis rechercher l'objet Role ou ClusterRole pour voir les privilèges dont il dispose dans le cluster.


0 commentaires

0
votes

Obtenez le nom du Rôle lié ​​au compte de service default à l'aide de la commande suivante. kubectl get rolebinding --output = yaml ou kubectl get clusterrolebinding --output = yaml

Maintenant, récupérez la configuration du rôle en utilisant kubectl get role rolenamefrompreviouscommands


0 commentaires

4
votes

La commande suivante pourrait vous aider. Il obtient essentiellement les RoleBindings et ClusterRoleBindings qui .subjects [0] est le nom du ServiceAccount.

$ kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="weave-net")]}[{.roleRef.kind},{.roleRef.name}]{end}'
[Role,weave-net][ClusterRole,weave-net]

Remarque: il ne listera pas les RoleBindings / ClusterRoleBindings qui contiennent plusieurs objets dans le champ sujet

Par exemple, si weave-net est déployé en tant que plug-in réseau, vous pouvez obtenir le rôle et le rôle de cluster utilisés par le compte de service weave-net:

$ kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="SERVICE_ACCOUNT_NAME")]}[{.roleRef.kind},{.roleRef.name}]{end}'

J'espère que cela vous aidera.


0 commentaires

2
votes
kubectl get rolebindings,clusterrolebindings \
--all-namespaces  \
-o custom-columns='KIND:kind,NAMESPACE:metadata.namespace,NAME:metadata.name,SERVICE_ACCOUNTS:subjects[?(@.kind=="ServiceAccount")].name'
you can try this command to generate a table to show the mapping

0 commentaires