跳至主内容
版本:2.6.7

管理用户权限

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

本文档介绍如何在 Chaos Mesh 中管理用户权限,包括创建不同角色的用户账户、将权限绑定到用户账户、管理令牌以及启用或禁用权限认证。

Chaos Mesh 使用 RBAC 授权机制管理用户权限。要创建、查看和管理混沌实验,用户必须在 chaos-mesh.orgapiGroups 中拥有操作混沌实验资源的相应权限。

注意

Chaos Mesh 支持禁用权限认证功能,具体操作请参阅启用或禁用权限认证

请注意:生产环境中不建议禁用权限认证。

创建用户账户并绑定权限

可通过 Chaos Dashboard 创建用户账户并绑定权限。访问 Dashboard 时将显示登录窗口,请点击 点击此处生成 链接:

Dashboard 令牌登录界面
Dashboard 令牌登录界面

点击链接后将出现令牌生成器,界面如下:

Dashboard 令牌生成器
Dashboard 令牌生成器

创建用户账户并绑定权限的步骤如下:

选择权限范围

若需授予账户操作集群内所有混沌实验的权限,请勾选 集群范围 复选框。若在 命名空间 下拉菜单指定命名空间,则账户仅拥有该命名空间内的操作权限。

权限范围分为两种模式:

  • Cluster scoped:账户拥有集群内所有混沌实验的操作权限

  • Namespace scoped:账户仅拥有指定命名空间内混沌实验的操作权限

选择用户角色

Chaos Mesh 当前提供以下用户角色:

  • Manager:拥有创建、查看、更新和删除混沌实验的全部权限

  • Viewer:仅拥有查看混沌实验的权限

生成权限配置

确定权限范围和用户角色后,Dashboard 会在令牌生成器中显示对应的 RBAC 配置。例如针对 default 命名空间的 manager 权限配置如下:

kind: ServiceAccount
apiVersion: v1
metadata:
namespace: default
name: account-default-manager-vfmot

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: role-default-manager-vfmot
rules:
- apiGroups: ['']
resources: ['pods', 'namespaces']
verbs: ['get', 'watch', 'list']
- apiGroups:
- chaos-mesh.org
resources: ['*']
verbs: ['get', 'list', 'watch', 'create', 'delete', 'patch', 'update']

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: bind-default-manager-vfmot
namespace: default
subjects:
- kind: ServiceAccount
name: account-default-manager-vfmot
namespace: default
roleRef:
kind: Role
name: role-default-manager-vfmot
apiGroup: rbac.authorization.k8s.io

点击配置区域右上角的 COPY 复制 RBAC 配置,并将内容保存到本地的 rbac.yaml 文件。

创建用户账户并绑定权限

在终端执行以下命令:

kubectl apply -f rbac.yaml
备注

请确保执行 kubectl 的本地用户拥有集群权限,才能创建用户账户、为其他用户绑定权限并生成令牌。

获取令牌

信息

Kubernetes v1.22 之前的版本会自动创建访问 API 的长期凭证。新版本中需手动创建服务账户令牌 Secret。

详见为 ServiceAccount 手动创建 API 令牌

复制令牌生成器第三步显示的命令并在终端执行,示例如下:

kubectl describe -n default secrets account-default-manager-vfmot

输出如下:

Name:         account-default-manager-vfmot-token-n4tg8
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name: account-default-manager-vfmot
kubernetes.io/service-account.uid: b71b3bf4-cd5e-4efb-8bf6-ff9a55fd7e07

Type: kubernetes.io/service-account-token

Data
====
ca.crt: 1111 bytes
namespace: 7 bytes
token: eyJhbG...

复制底部的令牌,用于下一步登录操作。

使用创建的用户账户登录 Chaos Dashboard

关闭令牌生成器。在令牌字段中输入上一步获取的令牌,在名称字段中为令牌输入有意义的名称(建议采用"权限范围+用户角色"的命名方式,例如default-manager)。填写完成后点击提交按钮登录:

仪表板令牌登录 2
仪表板令牌登录 2

信息

若尚未部署 Chaos Dashboard,您也可以手动生成 RBAC 配置,然后通过kubectl创建用户账号并绑定权限。

退出 Chaos Dashboard

如需更换其他令牌,请点击仪表板左侧导航栏中的设置

仪表板令牌退出
仪表板令牌退出

页面顶部可见退出按钮,点击即可注销当前账号。

常见问题解答

启用或禁用权限认证

通过 Helm 安装 Chaos Mesh 时默认启用权限认证。对于生产环境等高安全场景,建议保持启用状态。若仅需快速创建混沌实验进行体验,可在 Helm 命令中设置--set dashboard.securityMode=false禁用认证:

如需重新启用权限认证,请在 Helm 命令中重置--set dashboard.securityMode=true