权限管理
KubePolaris 提供基于角色的访问控制(RBAC),支持细粒度的权限管理。
权限模型
核心概念
| 概念 | 说明 |
|---|---|
| 用户 | 系统使用者,可分配角色 |
| 角色 | 权限集合,定义可执行的操作 |
| 权限 | 具体的操作权限,如查看、编辑、删除 |
| 资源 | 权限作用的对象,如集群、命名空间 |
权限层级
系统权限
├── 集群权限
│ ├── 命名空间权限
│ │ └── 资源权限
用户管理
用户列表
在 系统管理 → 用户管理 查看所有用户:
- 用户名
- 邮箱
- 角色
- 状态
- 最后登录时间
创建用户
- 点击 新建用户
- 填写用户信息:
| 字段 | 说明 | 必填 |
|---|---|---|
| 用户名 | 登录用户名 | ✅ |
| 邮箱 | 用户邮箱 | ✅ |
| 密码 | 登录密码 | ✅ |
| 角色 | 分配角色 | ✅ |
| 状态 | 启用/禁用 | ✅ |
- 点击 保存
编辑用户
修改用户信息或分配新角色。
禁用用户
禁用后用户无法登录,但保留历史记录。
删除用户
彻底删除用户及相关记录。
重置密码
管理员可重置用户密码。
角色管理
内置角色
| 角色 | 说明 | 权限范围 |
|---|---|---|
| 超级管理员 | 系统最高权限 | 所有权限 |
| 集群管理员 | 集群级别管理 | 指定集群的完整权限 |
| 运维人员 | 日常运维操作 | 查看、操作工作负载 |
| 开发人员 | 开发相关操作 | 查看资源、Pod 终端 |
| 只读用户 | 仅查看权限 | 所有资源只读 |
创建自定义角色
- 进入 系统管理 → 角色管理
- 点击 新建角色
- 填写角色信息:
名称: custom-developer
描述: 自定义开发者角色
- 配置权限:
permissions:
# 集群权限
clusters:
- clusterId: "*" # 所有集群
actions:
- view
- list
# 工作负载权限
workloads:
- clusterId: "cluster-1"
namespaces:
- "dev-*" # 所有 dev 开头的命名空间
actions:
- view
- list
- scale
- restart
# Pod 权限
pods:
- clusterId: "cluster-1"
namespaces:
- "dev-*"
actions:
- view
- list
- logs
- exec # 终端
- 保存角色
权限动作
| 动作 | 说明 |
|---|---|
view | 查看详情 |
list | 列表查看 |
create | 创建资源 |
edit | 编辑修改 |
delete | 删除资源 |
scale | 扩缩容 |
restart | 重启 |
logs | 查看日志 |
exec | 终端访问 |
资源授权
集群授权
授予用户对特定集群的访问权限:
- 进入集群详情 → 权限
- 点击 添加授权
- 选择用户或角色
- 选择权限级别
- 保存
命名空间授权
授予用 户对特定命名空间的访问权限:
- 进入命名空间页面
- 选择目标命名空间
- 点击 权限管理
- 添加用户授权
- 保存
权限继承
用户角色权限 + 集群授权 + 命名空间授权 = 最终权限
权限采用合并策略,用户拥有所有来源的权限总和。
访问控制
菜单权限
根据权限动态显示菜单:
# 无集群查看权限 → 隐 藏集群管理菜单
# 无用户管理权限 → 隐藏系统管理菜单
操作权限
页面中的操作按钮根据权限显示:
# 无删除权限 → 隐藏删除按钮
# 无编辑权限 → 隐藏编辑按钮
API 权限
后端 API 进行权限校验:
# 无权限调用返回 403 Forbidden
LDAP 集成
配置 LDAP
在 系统设置 → LDAP 配置:
enabled: true
host: ldap.example.com
port: 389
use_ssl: false
base_dn: dc=example,dc=com
bind_dn: cn=admin,dc=example,dc=com
bind_password: ****
user_filter: (uid=%s)
attributes:
username: uid
email: mail
display_name: cn
LDAP 用户同步
- 配置用户同步规则
- 设置默认角色
- 执行同步
LDAP 组映射
将 LDAP 组映射到 KubePolaris 角色:
group_mappings:
- ldap_group: cn=admins,ou=groups,dc=example,dc=com
role: admin
- ldap_group: cn=developers,ou=groups,dc=example,dc=com
role: developer
审计与合规
权限变更审计
所有权限变更都会记录:
- 用户创建/修改/删除
- 角色分配变更
- 资源授权变更
权限审查
定期审查用户权限:
- 导出权限报告
- 审查权限合理性
- 清理过期授权
最小权限原则
遵循最小权限原则:
- 仅授予必要权限
- 定期清理未使用权限
- 生产环境使用只读账号
常见场景
场景一:开发团队
角色: 开发人员
权限:
- 查看所有集群基本信息
- dev 命名空间完整权限
- 生产环境只读权限
场景二:运维团队
角色: 运维人员
权限:
- 所有集群完整权限
- 节点管理权限
- 终端访问权限
- 监控查看权限
场景三:外包人员
角色: 受限开发
权限:
- 指定集群指定命名空间
- 仅查看和日志权限
- 禁止终端访问
故障排查
权限不生效
- 检查用户角色配置
- 检查资源授权
- 清除浏览器缓存重新登录
- 查看权限详情页面
403 错误
- 确认用户具有对应权限
- 检查资源是否在授权范围
- 查看审计日志
LDAP 登录失败
- 检查 LDAP 配置
- 测试 LDAP 连接
- 验证用户 DN 格式
- 检查密码正确性