跳到主要内容
版本:3.10.x

创建自定义角色

API7 网关仅内置 Super Admin 一个角色,用于初始设置和紧急恢复。对于日常操作,请创建自定义角色,仅授予每个用户或团队实际需要的权限。

本指南说明一种常见模式:

  • 对生产网关组的只读访问。
  • 对测试网关组的完全访问。
  • 一个组合这两项权限策略的自定义角色。

前提条件

开始前,请确保:

  • API7 网关正在运行,且仪表板可访问。
  • 您拥有可以管理角色和权限策略的用户令牌。请参见从控制台获取令牌
  • 至少拥有两个网关组,例如 testproduction
  • 已知目标网关组ID,或者拥有可在权限策略中使用的标签。

有关策略语法的详情,请参见权限策略和权限边界

第 1 步:为生产环境创建只读策略

创建一个权限策略,允许只读访问生产网关组及其服务。

  1. 在控制台中,进入 Organization -> Permission Policies
  2. 点击 Create Permission Policy
  3. 输入名称,例如 production-readonly
  4. 在策略编辑器中粘贴类似下方的策略,并将网关组ID 替换为生产组 ID。
  5. 保存策略。
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/<production-gateway-group-id>"
],
"actions": [
"<.*>Get<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/<production-gateway-group-id>/service/<.*>"
],
"actions": [
"<.*>Get<.*>"
],
"effect": "allow"
}
]
}

第 2 步:为测试环境创建完全访问策略

创建第二项策略,允许完全访问测试网关组及其服务。

  1. Organization -> Permission Policies 中再次点击 Create Permission Policy
  2. 输入名称,例如 test-full-access
  3. 粘贴类似下方的策略,并将网关组ID 替换为测试组 ID。
  4. 保存策略。
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/<test-gateway-group-id>"
],
"actions": [
"<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/<test-gateway-group-id>/service/<.*>"
],
"actions": [
"<.*>"
],
"effect": "allow"
}
]
}

第 3 步:创建自定义角色

创建一个组合上述两项权限策略的角色。

  1. 进入 Organization -> Roles
  2. 点击 Create Role
  3. 输入名称,例如 Development Team Member
  4. 添加描述,例如 Read-only access to production and full access to test
  5. 附加 production-readonlytest-full-access 权限策略。
  6. 保存角色。

第 4 步:将角色分配给用户

将新自定义角色分配给非 root 用户。

  1. 进入 Organization -> Users
  2. 选择现有用户或邀请新用户。
  3. 附加 Development Team Member 角色。
  4. 保存更改。

第 5 步:验证角色

以获得新角色的用户身份登录,并验证预期访问权限:

  • 在生产网关组中,用户可以查看资源,但不能修改资源。
  • 在测试网关组中,用户可以创建、更新和删除资源。
  • 在这些范围以外,用户不会获得意外权限。

如果倾向使用 Admin API 验证,请以该用户身份登录,生成令牌,并对生产和测试资源发送测试请求。

常见模式

  • 按环境划分的运维人员:生产环境只读,非生产环境可写。
  • 角色管理员:管理用户、角色和权限策略,但无流量配置访问权。
  • 审计员:对审计日志、网关配置和凭证具有只读访问权。
  • 团队负责人:仅管理标记为特定团队的资源。

更多示例请参见权限策略示例

后续步骤