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