创建自定义角色
API7 网关仅内置 Super Admin 一个角色,用于初始设置和紧急恢复。对于日常操作,请创建自定义角色,仅授予每个用户或团队实际需要的权限。
本指南说明一种常见模式:
- 对生产网关组的只读访问。
- 对测试网关组的完全访问。
- 创建一个组合这两项权限策略的自定义角色。
前置条件
开始前,请确保:
- API7 网关正在运行,且控制台可访问。
- 你拥有能够管理角色和权限策略的用户 Token。该 Token 可按照从控制台获取 Token中的步骤创建。
- 至少拥有两个网关组,例如
test和production。 - 已知目标网关组 ID,或者拥有可在权限策略中使用的标签。
有关策略语法的详情,请参见权限策略和权限边界。
第 1 步:为生产环境创建只读策略
创建一个权限策略,允许只读访问生产网关组及其服务。
- 控制台
- Admin API
- 在控制台中,进入 组织 -> 权限策略。
- 点击 新增权限策略。
- 输入名称,例如
production-readonly。 - 在策略编辑器中粘贴类似下方的策略,并将网关组 ID 替换为生产组 ID。
- 保存策略。
{
"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"
}
]
}
curl -k "https://localhost:7443/api/permission_policies" -X POST \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "production-readonly",
"desc": "Read-only access to the production gateway group",
"policy_document": {
"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 步:为测试环境创建完全访问策略
创建第二项策略,允许完全访问测试网关组及其服务。
- 控制台
- Admin API
- 在 组织 -> 权限策略 中再次点击 新增权限策略。
- 输入名称,例如
test-full-access。 - 粘贴类似下方的策略,并将网关组 ID 替换为测试组 ID。
- 保存策略。
{
"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"
}
]
}
curl -k "https://localhost:7443/api/permission_policies" -X POST \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "test-full-access",
"desc": "Full access to the test gateway group",
"policy_document": {
"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 步:创建自定义角色
创建一个组合上述两项权限策略的角色。
- 控制台
- Admin API
- 进入 组织 ->