团队与 RBAC
通过基于角色的访问控制、项目级权限和完整的操作审计追踪来组织你的团队。
创建团队
团队允许多个用户在同一 sh0 实例上协作。第一个用户(安装期间创建)自动成为拥有完全管理员权限的团队所有者。
- 在控制台中导航到 设置 → 团队。
- 你的默认团队已自动创建。你可以在此处重命名。
- 添加团队描述和头像(可选)。
团队设置页面,包含团队名称和描述
Note
在当前版本中,sh0 每个实例支持一个团队。多团队支持(用于管理多个客户的代理机构)计划在未来版本中实现。
邀请成员
管理员可以通过邮箱邀请新成员加入团队。被邀请的用户将收到一封包含账户设置链接的邮件。
- 前往 设置 → 团队 → 成员。
- 点击 邀请成员。
- 输入邮箱地址并选择角色(管理员、开发者或查看者)。
- 点击 发送邀请。
邀请成员对话框,包含邮箱字段和角色选择器
curl -X POST https://your-server:9000/api/team/invite \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"role": "developer"
}'待处理的邀请在成员列表中显示 已邀请 标记。你可以随时重新发送或撤销邀请。
角色类型
sh0 提供三种内置角色,访问级别递增:
| 角色 | 描述 | 使用场景 |
|---|---|---|
| 管理员 | 对所有资源、设置、团队管理和账单的完全访问权限。 | CTO、DevOps 负责人、基础设施所有者 |
| 开发者 | 可以创建、部署和管理应用。无法访问团队设置或服务器配置。 | 软件工程师、DevOps 团队成员 |
| 查看者 | 只读访问。可以查看应用、日志和指标,但不能修改任何内容。 | 利益相关者、QA 团队、审计人员 |
团队成员列表,显示不同角色的标记
权限矩阵
以下是每个角色权限的完整说明:
| 操作 | 管理员 | 开发者 | 查看者 |
|---|---|---|---|
| 查看应用和控制台 | 是 | 是 | 是 |
| 查看日志与指标 | 是 | 是 | 是 |
| 创建和部署应用 | 是 | 是 | 否 |
| 管理环境变量 | 是 | 是 | 否 |
| 管理域名与 SSL | 是 | 是 | 否 |
| 访问终端 | 是 | 是 | 否 |
| 管理团队成员 | 是 | 否 | 否 |
| 服务器设置与节点 | 是 | 否 | 否 |
| 账单与许可证 | 是 | 否 | 否 |
项目级访问
除了全局角色外,你还可以将用户的访问限制在特定项目。当不同团队成员处理不同应用时,这非常有用。
- 前往项目的 设置 → 访问 选项卡。
- 点击 添加成员 并选择团队成员。
- 为此项目选择访问级别(完全访问、仅部署、仅查看)。
项目级访问设置,显示成员权限
Tip
默认情况下,管理员可以访问所有项目。除非你明确限制,否则开发者可以看到所有项目。查看者只能看到被授予访问权限的项目。
审计日志
sh0 记录团队成员执行的每个重要操作。审计日志提供谁在何时做了什么的完整时间线。
跟踪的事件包括:
- 登录和登出事件
- 应用创建、部署和删除
- 环境变量更改
- 域名添加和移除
- 团队成员邀请和角色变更
- 设置修改
- 数据库操作(备份、恢复、删除)
审计日志,显示团队操作的时间线,包含用户、操作和时间戳
curl https://your-server:9000/api/team/audit-log?page=1&per_page=50 \
-H "Authorization: Bearer YOUR_TOKEN" Note
审计日志默认保留 90 天。你可以在 设置 → 安全 中配置保留期限。
移除成员
管理员可以从 设置 → 团队 → 成员 中移除团队成员。移除成员会:
- 立即撤销其所有活跃会话。
- 移除其对所有项目和资源的访问权限。
- 不会删除他们创建的任何资源(应用、数据库等)。
- 在审计日志中保留其操作记录以便追责。
curl -X DELETE https://your-server:9000/api/team/members/usr_abc123 \
-H "Authorization: Bearer YOUR_TOKEN" Warning
团队所有者不能被移除。要转让所有权,请先从 设置 → 团队 重新分配所有者角色。