rbac-police RBAC 风险审计
rbac-police 用策略即代码检查 Kubernetes RBAC 风险,例如通配符权限、敏感资源访问、匿名绑定、特权 ServiceAccount 和过宽的 ClusterRole。它适合在 CI 和集群巡检中发现提权路径。
核心概念:policy、rule、resource、context 和 severity。策略用 YAML/Rego 表达,输出 JSON、YAML 或表格。
安装 CLI:
go install github.com/Permify/rbac-police@latest
rbac-police version
扫描当前集群:
rbac-police eval --output-format table
输出 JSON:
rbac-police eval --output-format json > rbac-report.json
指定 kubeconfig 和 context:
rbac-police eval --kubeconfig ~/.kube/config --context prod
使用自定义策略目录:
rbac-police eval --policies ./policies
策略示例:
cat > policies/wildcard.yaml <<'EOF'
apiVersion: rbac.police/v1
kind: Policy
metadata:
name: wildcard-permissions
spec:
severity: high
rules:
- verbs: ["*"]
resources: ["*"]
apiGroups: ["*"]
EOF
在 CI 中失败退出:
rbac-police eval --output-format json --fail-on high
* 权限在开发环境常见,生产要区分严重级别。system:unauthenticated 的绑定要重点检查。automountServiceAccountToken。rbac-police eval — 执行扫描kubectl auth can-i — 验证单个权限kubectl get clusterrole,role -A — 查看角色kubectl get clusterrolebinding,rolebinding -A — 查看绑定jq — 处理 JSON 报告