设计自定义角色体系
随着组织规模扩大,访问控制会变得更加复杂,无法再简单地为所有人授予宽泛的管理员权限。API7 网关支持 组合用户、角色、权限策略和权限边界来设计自定义角色体系。
本指南介绍如何设计一套随着团队和环境增长仍然易于理解、安全且可维护的角色体系。
从访问模型开始
创建角色前,请先定义希望权限策略支持的运作模型:
- 哪些团队需要访问 API7 网关。
- 团队应管理哪些环境,如
dev、test、staging和production。 - 允许执行哪些操作,如只读查看、部署、运维或管理用户。
- 哪些资源必须严格控制,如许可证、组织设置、凭据和生产网关组。
这样可以让角色体系与实际职责保持一致,而不是机械照搬组织架构。
核心设计原则
优先授予最小权限
从能让团队完成工作的最小权限集开始。只有在明确存在运维需求时才逐步扩大权限。
良好的起始模式包括:
- 为审计、支持和合规工作流设置只读角色。
- 为非生产和生产运维设置不同角色。
- 将 IAM 管理与网关流量管理分离。
优先使用可复用权限策略
设计小型、可复用的权限策略,并根据需要将其挂载到多个角色,使访问模型更易审查和更新。
例如,可以分别创建以下策略:
- 只读访问生产网关组。
- 完全访问测试网关组。
- 管理用户和角色。
- 查看审计日志。
然后将这些策略组合到符合实际职责的角色中。
使用标签实现规模化管理
管理大量网关组、服务或团队时,应避免在每项策略中硬编码所有资源 ID。使用标签和基于标签的条件,可降低策略扩展时的维护成本。
例如:
env=productionteam=paymentsregion=eu
这样从少量环境扩展到数十个环境时,无需重写每个角色。
分离角色设计与角色分配
能够分配角色的人员不一定也应能够设计或编辑角色。许多组织只允许少数可信管理员定义策略和角色,而团队负责人或委派管理员只能向用户分配已批准的角色。
这种职责分离可以降低意外提权风险。