You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看自己在Kubernetes集群中的所有权限列表?

查看Kubernetes集群中你的所有权限汇总

方法1:遍历资源检查权限

kubectl auth can-i '*' '*'返回no是因为你没有所有资源的全量权限,但可以通过遍历资源类型来逐一验证权限:

  1. 先获取集群支持的所有资源类型:
kubectl api-resources --verbs=list -o name | sort
  1. 运行以下脚本遍历每个资源,检查常见操作的权限:
for resource in $(kubectl api-resources --verbs=list -o name); do
  echo "=== 资源:$resource ==="
  kubectl auth can-i list $resource
  kubectl auth can-i get $resource
  kubectl auth can-i create $resource
  kubectl auth can-i update $resource
  kubectl auth can-i delete $resource
done

你可以根据需要修改脚本中的操作列表,比如添加patch、watch等。

方法2:查看绑定的角色与权限

如果你的权限通过RoleBinding或ClusterRoleBinding分配,可直接查看这些绑定及对应的角色权限:

集群级权限绑定

kubectl get clusterrolebindings -o json | jq '.items[] | select(.subjects[]? | .name == "'$(kubectl config current-context | cut -d'/' -f2)'") | .roleRef.name'

根据返回的集群角色名称,查看具体权限:

kubectl describe clusterrole <集群角色名称>

命名空间级权限绑定(需有权限查看)

kubectl get rolebindings --all-namespaces -o json | jq '.items[] | select(.subjects[]? | .name == "'$(kubectl config current-context | cut -d'/' -f2)'") | {命名空间: .metadata.namespace, 角色: .roleRef.name}'

查看对应命名空间角色的权限:

kubectl describe role <角色名称> -n <命名空间>

方法3:生成权限绑定报告

使用kubectl auth reconcile整理所有绑定到你的角色及权限规则:

kubectl auth reconcile -f <(kubectl get clusterrolebindings,rolebindings --all-namespaces -o json | jq '.items[] | select(.subjects[]? | .name == "'$(kubectl config current-context | cut -d'/' -f2)'")') -o yaml

注意:如果没有查看RoleBinding/ClusterRoleBinding的权限,方法1是最可靠的方式。

内容的提问来源于stack exchange,提问作者Surya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:17:24