角色与权限

更新时间:上周 · 预计阅读 1 分钟

基于角色的访问控制(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 的成员,都可以看到组织中的所有 本地化引擎。

要进一步收窄访问范围,可以把指定用户添加到指定引擎。按引擎授予的权限是叠加生效的——组织级的 engine:access 始终具有更高优先级。若想将某位用户限制在单个引擎内,请先为其分配一个_不含_ engine:access 的角色,再把他们单独添加到该引擎。

组织 API 密钥也遵循同样的模型:一个密钥可以携带角色(覆盖性权限)、按引擎划分的作用域、两者同时具备,或者两者都不具备。防止权限升级的保护机制会在创建和编辑时同时生效——组织密钥只能使用权限集合仅为 engine:access 的角色。

组织 API 密钥#

组织密钥是仅在 RBAC 下提供的能力。个人密钥在所有套餐中都可用,并继承创建者的角色。组织密钥仅会在 RBAC 权益启用时提供,并拥有独立的权限。

  • 创建组织密钥需要 org:manage_team,这也是分配角色时所需的同一作用域。
  • 组织密钥即使没有角色也同样有效——它的访问权限完全来自密钥中列出的引擎。
  • 如果 Enterprise 套餐结束,所有组织密钥都会被停用,并返回一个会明确标出该权益的类型化 403。这样一来,操作人员就会知道该恢复套餐,或改用个人密钥,而不是去排查一个并不存在的引擎作用域问题。

你可以在 API Keys 页面管理组织密钥的角色和引擎作用域。

所有权#

无需单独执行“转移所有权”这一步。Owner 只需在 Team 页面中的角色选择器里,将 Owner 角色分配给其他人,即可把所有权交给对方;同时,组织中必须始终至少保留一位 Owner。若你想卸任,请先将另一位成员提升为 Owner,再降低或移除自己的角色。

后续步骤#