创建自定义角色
API7 企业版初始提供了一个锁定的 超级管理员 角色和策略,授予完全访问权限以进行初始设置。默认的 admin 帐户永久绑定到此角色,用于紧急恢复。
通过自定义角色,你可以构建一个根据特定需求量身定制的细粒度权限系统。本教程将指导你在 API7 企业版中定义自定义角色的过程,使你能够更精确地管理访问控制。
本教程演示了一个自定义角色,该角色对生产网关组具有只读(view-only)访问权限,对测试网关组具有完全访问权限(查看和编辑)。你将完成以下步骤:
- 创建两个权限策略,一个用于定义对生产网关组的只读权限,另一个用于定义对测试网关组的完全访问权限。
- 创建一个附加了上述两个权限策略的自定义角色
Development Team Member。
前提条件
- 安装 API7 企业版。
- 拥有两个网关组用于测试和生产环境,且每个组中至少有一个网关实例。
- 两个网关组中都拥有一个已发布的服务以供验证。
- (可选)了解权限策略示例。
创建权限策略
创建只读生产权限策略
- 在顶部导航栏中选择组织,然后选择权限策略。
- 点击新增策略。
- 在对话框中,执行以下操作:
- 在名称字段中,输入
production-gateway-group-view-only。 - 在策略编辑器输入框中,输入以下 JSON:
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/{production gateway group id}" // 使用网关组 ID 进行标识
],
"actions": [
"<.*>Get<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/{production gateway group id}/publishedservice/<.*>" // 对这些网关组上的所有已发布服务具有只读权限
],
"actions": [
"<.*>Get<.*>"
],
"effect": "allow"
}
]
}
- 点击新增。
创建完全访问测试权限策略
- 在顶部导航栏中选择组织,然后选择权限策略。
- 点击新增策略。
- 在对话框中,执行以下操作:
- 在名称字段中,输入
test-gateway-group-full-access。 - 在策略编辑器输入框中,输入以下 JSON:
{
"statement": [ // 策略中的多个 statement 具有 OR(或)关系。
{
"resources": [
"arn:api7:gateway:gatewaygroup/{test gateway group id}"
],
"actions": [
"<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/{test gateway group id}/publishedservice/<.*>" // 对该网关组上的所有已发布服务具有完全访问权限
],
"actions": [
"<.*>"
],
"effect": "allow"
}
]
}
- 点击新增。
创建自定义角色
- 在顶部导航栏中选择组织,然后选择角色。
- 点击新增自定义角色。
- 在对话框中,执行以下操作:
- 在名称字段中,输入
Development Team Member。 - (可选)在描述字段中,输入
View-only access to production gateway group and full access (view & edit) to test gateway group. - 点击新增。
- 在角色详情页面,点击关联策略。
- 选择
production-gateway-group-view-only和test-gateway-group-full-access。 - 点击提交。
验证自定义角色
- 按照教程更新用户角色操作,将
Development Team Member分配给其他用户,例如Tom。 - 让 Tom 登录并验证他的权限。