如何在k8s中查看与特定服务帐户关联的权限/角色?

问题描述 投票:0回答:3

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

kubernetes rbac
3个回答
1
投票

在Kubernetes中,使用ClusterRoleBinding对象将服务帐户映射到特权(集群级别或命名空间级别)。您需要查找RoleBinding或ClusterRoleBinding对象,然后查找Role或ClusterRole对象,以查看其在集群中具有哪些特权。


0
投票

使用以下命令获取绑定到服务帐户Roledefault名称。kubectl get rolebinding --output=yamlkubectl get clusterrolebinding --output=yaml

现在使用获取角色配置kubectl get role rolenamefrompreviouscommands


0
投票

以下命令可能会有所帮助。它基本上获取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]

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.