更新用户角色
基于角色的访问控制(RBAC)将权限与角色绑定,而不是直接与用户绑定。然后将这些角色分配给用户,从而简化访问管理,提高效率并减少错误。本指南将引导你使用 API7 企业版的自定义角色、权限策略和权限边界来管理基于角色的访问控制。
更新用户角色
- 从顶部导航栏选择 组织,然后选择 用户。
- 为目标用户点击 更新角色。
- 添加或移除角色。
- 点击 更新。
要查看每个角色的权限,请从顶部导航栏选择 组织,然后选择 用户。
角色和权限策略相结合以控制访问。以下是一个使用自定义角色和权限策略来隔离环境访问的示例。
定义权限策略
- 创建三个网关组:
test,UAT,和production。 - 从顶部导航栏选择 组织,然后选择 权限策略。
- 点击 新增策略。
- 在 新增权限策略 对话框中,执行以下操作:
-
在 名称 字段中,输入
test-gateway-group-full-access。 -
在 策略编辑器 对话框中,输入以下配置:
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/b6db7341-fc1f-4cee-a318-3e782a163d24"
],
"actions": [
"<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/b6db7341-fc1f-4cee-a318-3e782a163d24/publishedservice/<.*>"
],
"actions": [
"<.*>"
],
"effect": "allow"
}
]
}备注资源 ID 应与创建的网关组保持一致。请根据你的实际情况进行更改。
-
点击 新增。
-
- 点击 新增策略。
- 在对话框中,执行以下操作:
-
在 名称 字段中,输入
uat-gateway-group-full-access。 -
在 策略编辑器 字段中,输入以下配置:
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/45a06edc-4a93-4bea-a437-3f153b56254c"
],
"actions": [
"<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/45a06edc-4a93-4bea-a437-3f153b56254c/publishedservice/<.*>"
],
"actions": [
"<.*>"
],
"effect": "allow"
}
]
} -
点击 新增。
-
- 点击 新增策略。
- 在对话框中,执行以下操作:
-
在 名称 字段中,输入
production-gateway-group-full-access。 -
在 策略编辑器 字段中,输入以下配置:
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/edc12ecd-94a5-49b2-b82d-8d1113e6cd86"
],
"actions": [
"<.*>"
],
"effect": "allow"
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/edc12ecd-94a5-49b2-b82d-8d1113e6cd86/publishedservice/<.*>"
],
"actions": [
"<.*>"
],
"effect": "allow"
}
]
} -
点击 新增。
-
定义自定义角色
- 从顶部导航栏选择 组织,然后选择 用户。
- 点击 新增自定义角色。
- 在对话框中,执行以下操作:
- 在 名称 字段中,输入
Development Team Member。 - 点击 新增。
- 在 名称 字段中,输入
- 以相同的方式创建另外两个角色
Development Team Lead和Test Engineer。
分配具有受控访问权限的角色
- 点击
Development Team Member并进入角色页面。 - 点击 关联策略。
- 在对话框中,执行以下操作:
- 在 权限策略 字段中,选择
test-gateway-group-full-access。 - 点击 提交。这允许他们仅在测试环境中进行更改。
- 在 权限策略 字段中,选择
- 将
test-gateway-group-full-access和uat-gateway-group-full-access策略分配给Development Team Lead。这使他们能够在测试和 UAT 环境中工作,可能还包括将稳定配置从测试环境同步到 UAT 环境的能力。 - 将
uat-gateway-group-full-access和production-gateway-group-full-access策略分配给Test Engineer。这将他们的访问权限限制在 UAT 和生产环境中,专注于新 API 的测试和发布任务。
验证
- 使用拥有
Development Team Member角色的帐户登录 API7 企业版;该帐户只能访问Test网关组。 - 使用拥有
Development Team Lead角色的帐户登录 API7 企业版;该帐户只能访问Test和UAT网关组。 - 使用拥有
Test Engineer角色的帐户登录 API7 企业版;该帐户只能访问UAT和Production网关组。
设置角色映射(需要 SSO)
满足定义的键值映射规则的用户,在登录时将被自动分配相应的角色。有关详细信息,请参阅启用角色映射。
角色映射的优先级高于手动角色分配。当角色映射处于激活状态时,对用户角色进行的任何手动调整都将在下一次用户登录时被覆盖。
设置用户权限边界
用户的有效权限由其分配的角色和权限边界的交集决定。 这意味着仅在以下情况下才允许用户执行某项操作:
- 至少被一个分配的角色允许。
- 被权限边界允许(如果存在)。
- 没有被任何分配的角色或权限边界拒绝。
以下是使用权限边界限制访问许可证的示例。下面是一个交互式演示,提供了动手实践的介绍。
创建权限策略并设置权限边界
- 从顶部导航栏选择 组织,然后选择 权限策略。
- 点击 新增策略。
- 在对话框中,执行以下操作:
-
在 名称 字段中,输入
no-access-to-license。 -
在 策略编辑器 字段中,输入以下配置:
{
"statement": [
{
"resources": [
"arn:api7:iam:organization/*"
],
"actions": [
"iam:UpdateLicense"
],
"effect": "deny"
},
{
"resources": [
"<.*>"
],
"actions": [
"<.*>"
],
"effect": "allow"
}
]
}备 注此策略允许访问除许可证之外的所有资源。
-
点击 新增。
-
- 从顶部导航栏选择 组织,然后选择 用户。
- 点击 邀请用户。
- 在对话框中,执行以下操作:
- 在 用户名 字段中,输入
Tom。 - 为 Tom 设置一次性密码。
- 在 权限边界 字段中,选择
no-access-to-license。 - 点击 邀请。
- 在 用户名 字段中,输入
- 点击 更新角色。
- 在对话框中,执行以下操作:
- 在 角色 字段中,选择
Super Admin。 - 点击 更新。
- 在 角色 字段中,选择
验证
- 使用 Tom 的帐户登录 API7 企业版。
- 从顶部导航栏选择 组织,然后选择 许可证。
- 点击许可证页面上的编辑图标;你将看到以下提示,表明访问被拒绝:权限不足,当前用户角色不允许执行此操作。如果需要额外的访问权限,请联系你的管理员。
设置权限边界映射(需要 SSO)
满足定义的键值映射规则的用户,在登录时将被自动分配相应的权限边界。有关详细信息,请参阅启用权限边界映射。
权限边界映射的优先级高于手动修改权限边界。当权限边界映射处于激活状态时,对用户权限边界进行的任何手动调整都将在下一次用户登录时被覆盖。
附加资源
- 核心概念
- 入门指南
- 最佳实践