我尝试了kubectl get sa default命令,但只看到一些非常基本的值。在k8s中查看与特定服务帐户关联的权限/角色的命令是什么?

最佳答案

以下命令可能会有所帮助。它基本上获得RoleBindings和ClusterRoleBindings,其中.subjects [0]是ServiceAccount的名称。

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

注意:它不会在主题字段中列出包含多个对象的RoleBindings / ClusterRoleBindings

例如,如果将weave-net部署为网络插件,则可以获取weave-net ServiceAccount使用的Role和ClusterRole:
$ 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]

希望这可以帮助。

关于kubernetes - 如何在k8s中查看与特定服务帐户关联的权限/角色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54602224/

10-10 23:35