基于角色的访问控制(RBAC)让你可以定义自定义角色,并为团队成员分配细粒度权限。该功能仅限企业版套餐。
启用 RBAC 后,每位成员的权限都来自其分配的角色——没有角色的成员仍可登录,但无法执行任何管理操作。未启用 RBAC 时,所有成员默认都拥有完全访问权限(参见 Team)。
权限#
每个角色都由五项权限组成:
| 权限 | 范围 | 可执行操作 |
|---|---|---|
org:manage_team | 组织 | 邀请或移除成员、创建或编辑角色、分配角色 |
org:manage_settings | 组织 | 编辑组织名称、时区和集成 |
org:manage_billing | 组织 | 查看和修改账单、套餐及发票 |
org:delete | 组织 | 删除整个组织 |
engine:access | 引擎 | 查看、编辑、删除 本地化引擎,并管理其成员 |
org:manage_billing 和 org:delete 为 Owner 专属——只有当前 Owner 才能通过分配包含这些权限的角色来授予其中任意一项。
角色#
共有三类角色:
- Owner —— 拥有全部权限的系统角色。创建组织的用户会成为首位 Owner;现有 Owner 也可以指定其他 Owner。该角色本身不能编辑或删除,且组织始终必须至少保留一位 Owner。
- Full Access —— 创建组织时会自动预置,包含
org:manage_team、org:manage_settings和engine:access。它和其他自定义角色一样可编辑;作为默认角色,适合可信赖的团队成员。 - 自定义角色 —— 由你自行创建的任意角色。你可以为其命名,并从权限目录中选择任意子集。
角色是权限打包
用户在组织级别只能拥有一个角色。若要授予部分访问权限,请创建一个恰好包含所需权限子集的角色并分配给该用户。你不能脱离角色单独授予某项权限。
分配角色#
打开 Team 页面,选择一位成员,再为其指定角色。移除角色后,对方仍是组织成员,但不再拥有任何权限——他们仍可保持登录状态,但无法访问任何引擎、设置或账单。
只有现有 Owner 才能将其他成员提升为 Owner,或将某位 Owner 降级——因为这些变更本身就需要 Owner 权限集。
引擎访问#
默认情况下,任何角色中包含 engine:access 的成员,都可以看到组织中的所有 本地化引擎。
若要收窄访问范围,请在对应引擎的 Members 标签页中,将特定用户添加到特定引擎。按引擎授予的权限是叠加的——组织级别的 engine:access 始终优先生效。若要将用户限制为只能访问单个引擎,请为其分配一个不包含 engine:access 的角色,再单独将其添加到该引擎。
服务 API 密钥 也遵循同样的模型:一个密钥可以带有角色(整体权限)、按引擎限定的范围、两者兼有,或两者皆无。防止权限提升的保护机制在创建和编辑时都会生效——服务密钥仅限使用权限集为 engine:access 的角色。
服务 API 密钥#
服务密钥是 RBAC 专属能力。个人密钥在所有套餐中都可用,并继承创建者的角色;服务密钥仅在 RBAC 权益启用时可用,并拥有自己的权限。
- 创建服务密钥需要
org:manage_team,这与分配角色所需的权限范围相同。 - 没有角色的服务密钥同样有效——它的访问权限完全来自密钥中列出的引擎。
- 如果企业版套餐结束,组织中的所有服务密钥都会被停用,并返回一个带类型信息的 403 错误,明确指出相关权益。这样操作人员就会知道,应恢复套餐或切换为 Personal key,而不是去排查并不存在的引擎范围 bug。
你可以在 API Keys 页面管理服务密钥的角色和引擎范围。
转移所有权#
如果你是唯一的 Owner 并希望卸任,请在 Team 页面使用“Transfer ownership”。选择新的 Owner,以及你之后希望保留的角色(也可以不分配角色)——提升对方与自己卸任会在一次事务中同时提交,因此组织始终不会出现没有 Owner 的情况。
此流程专门用于卸任。如果你只是想共享 Owner 职责,请直接通过常规角色选择器将另一位用户提升为 Owner。
