用途:系统审查 Kubernetes 基于角色的访问控制(RBAC),检查 Role、ClusterRole、RoleBinding、ClusterRoleBinding 及服务账号权限,发现过度宽松访问、特权提升路径和违反最小权限原则的配置。
核心概念:Role 在命名空间内授权,ClusterRole 为集群范围,RoleBinding 将 Role/ClusterRole 绑定到命名空间内主体,ClusterRoleBinding 则集群范围绑定。危险组合包括:对 * 资源使用 * 动词(等同 cluster-admin)、create pods、create pods/exec、get secrets、create clusterrolebindings、impersonate users、escalate 与 bind。
主要步骤:一、枚举所有 RBAC 资源,如 kubectl get clusterroles -o name、kubectl get rolebindings -A -o wide,并导出 YAML 离线分析;二、用 jq 筛选含通配符、可创建 Pod 或读取 secret 的角色;三、检查服务账号权限,如 kubectl auth can-i --list --as=system:serviceaccount:<ns>:default,并查找绑定 cluster-admin 的绑定;四、使用自动化工具分析,如 kubectl krew install rbac-tool、kubectl rbac-tool who-can get secrets -A、kubectl rbac-tool analysis;五、排查特权提升路径,检索 escalate、bind、impersonate 等动词;六、用 KubiScan 扫描,pip install kubiscan 后执行 kubiscan --risky-roles 等。
验证:可用 kubectl auth can-i 验证具体权限,用 kubescape 结合 rbac 控制文件检查。
前提与限制:需启用 RBAC 的集群,完整审计需 cluster-admin 权限的 kubectl;需安装 rbac-tool、rakkess 或 KubiScan。具体收费、版本兼容性与效果资料暂无提供。