RBAC(基于角色的访问控制)是 Kubernetes 中实现细粒度权限控制的核心机制。通过合理配置角色与权限绑定,可以确保集群资源的安全性。以下是关键知识点:
1. 基本概念 🧠
- Role:定义角色拥有的权限(如对 Pods 的操作)
- ClusterRole:定义集群范围的权限(如对 Nodes 的访问)
- RoleBinding:将 Role 绑定到特定用户或服务账户
- ClusterRoleBinding:集群范围权限绑定
📌 图片:Kubernetes_RBAC
2. 权限操作示例 🔧
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # 空字符串表示核心 API
resources: ["pods"] # 资源类型
verbs: ["get", "list"] # 允许的操作
📌 图片:RBAC_Tutorial_Config
3. 最佳实践 ✅
- 最小权限原则:仅授予必要的操作权限
- 分层管理:使用
ClusterRole
管理全局权限,Role
管理命名空间权限 - 自动化验证:通过
kubectl auth can-i
检查权限有效性