角色与权限策略
本文档将介绍 API7 企业版中的高级功能:角色和权限策略的概念。
概述
- 角色:定义具有特定访问级别的用户组。你可以创建自定义角色,对具有相似权限需求的用户进行分类。一个角色可以与多个权限策略相关联。
- 权限策略:它们可以被视为一种蓝图,用来概括 API7 企业版中特定资源(例如,网关组、已发布的服务)的允许操作(权限)。单个权限策略可以被多个角色同时关联,也可以被直接用作某些用户的权限边界,从而防止用户越权。
角色和权限策略工作原理
考虑这样一种场景:你创建了一个名为 网关组管理员 的自定义角色,并为其关联名为 网关组基本操作 的权限策略。
此权限策略将 GetGatewayGroups 操作授予所有网关组资源(资源范围为 *),允许用户在控制台上查看网关组列表,并直接使用 Get all gateway groups API 或利用 API7 工具(如 ADC 和 API7 Ingress Controller)检索网关组列表。
关键点:
- 角色用于根据用户的共享权限要求对用户进行分类。对角色的关联权限策略的更改将影响该角色关联的所有用户。
- 权限策略指定了 API7 企业版(包括 API7 网关 和 API7 门户)内指定资源的授权操作。
- 将权限策略关联到多 个角色会将关联的权限授予这些角色中的所有用户。
- 权限策略可以根据需要进行详细或广泛的定义。建议从基本设置开始,然后随着访问控制要求的发展对其进行细化。
使用案例
内置超级管理员角色
API7 企业版在初始系统设置时提供了一个预定义的角色,名为 超级管理员。此角色与内置的 super-admin-permission-policy 相关联,该策略授予对 API7 企业版内所有操作和资源的完全访问权限。内置的角色和策略都是不可编辑的,以确保核心系统安全。
初始 admin 帐户永久绑定到 超级管理员 角色,并且其角色无法更改。
使用自定义角色扩展访问控制
API7 企业版中还能够创建具有精细权限的自定义角色。对于需要完全访问的场景,你也可以直接将 super-admin-permission-policy 关联到你的自定义角色。
示例场景:隔离环境和定制安全性
通过将权限策略限定在特定网关组的资源范围内,你可以为每个环境定义精细的安全控制。与测试或 UAT 等开发环境中更宽松的权限设置相比,你可以在生产等环境中实施更严格的访问限制。
- 定义权限策略
为每个网关组创建特定的权限策略,例如 测试网关组完全操作、UAT网关组完全操作 和 生产网关组网完全操作。这些策略分别定义了每个网关组(对应不同环境)中允许的操作和资源。
- 分配角色
创建自定义角色以对具有相似访问需求的用户进行分类,然后将适当的权限策略关联到每个角色:
- 开发团队成员:关联
测试网关组完全操作策略,允许他们仅在测试环境中进行更改。 - 开发团队领导:关联
测试网关组完全操作和UAT网关组完全操作策略。这使他们能够在测试和 UAT 环境中工作,还包括将服务版本从测试同步到 UAT 的能力。 - 测试工程师:关联
UAT网关组完全操作和生产网关组完全操作策略。这将他们的访问权限限制在 UAT 和生产环境,专注于新的 API 测试和发布任务。
防止用户越权
用户的角色可能经常发生变化,因此你可能需要一种保障措施来确保边界限制。 例如,权限边界可用于防止 A 部门用户访问 B 部门拥有的资源。权限边界还可用于防止意外访问关键系统组件,例如许可证或组织设置。通过明确拒绝访问这些区域,你可以维持一个强大的安全层,保护敏感配置免遭未经授权的修改。