RBAC 基础概念:模型定义、核心元素与 ABAC 区别
RBAC(Role-Based Access Control,基于角色的访问控制)是当前企业级应用中最主流的权限管理模型。它将权限与角色关联,再通过为用户分配角色来间接授予权限,从而大幅降低权限管理的复杂度。在云成本归因场景中,RBAC 是确保“谁在什么范围内消耗了多少成本”这一审计链条可追溯、可管控的基础设施。
1. RBAC 模型定义
RBAC 的核心思想是:权限不直接授予用户,而是授予角色,用户通过成为角色的成员来获得相应权限。这种间接授权机制使得权限管理从“用户-权限”的 N×M 复杂关系简化为“用户-角色-权限”的线性关系,显著提升了管理效率。
NIST(美国国家标准与技术研究院)在 RBAC 标准中定义了四个核心模型层级:
| 模型层级 | 名称 | 核心特征 | 成本归因适用场景 |
|---|---|---|---|
| RBAC₀ | 核心 RBAC | 用户-角色-权限三元组,角色继承 | 基础成本查看权限分配 |
| RBAC₁ | 层级 RBAC | 角色支持层级继承(上级角色自动拥有下级角色权限) | 组织架构与成本中心层级映射 |
| RBAC₂ | 约束 RBAC | 引入职责分离(SoD)、互斥角色等约束 | 成本审批与执行角色分离 |
| RBAC₃ | 统一 RBAC | 同时支持层级与约束 | 大型多云成本治理平台 |
2. 核心元素详解
RBAC 模型由四个核心元素构成,它们之间的交互关系构成了权限管理的完整闭环。
2.1 用户(User)
用户是权限系统中最基本的实体,通常对应一个自然人、服务账号或机器人。在云成本归因中,用户是成本消耗行为的发起者,也是成本审计追踪的最终落脚点。
- 属性: 用户ID、姓名、邮箱、所属组织、成本中心编码
- 特点: 一个用户可以拥有多个角色,但同一会话中可激活的角色受策略限制
- 成本归因字段: 用户标签(如
cost_center: FINANCE)
2.2 角色(Role)
角色是权限的集合容器,是 RBAC 模型中最核心的抽象概念。角色通常与组织职能强相关,例如“财务分析师”、“云运维工程师”、“项目管理员”。
- 属性: 角色ID、角色名称、角色层级、所属域
- 继承关系: 上级角色自动继承下级角色的所有权限(RBAC₁)
- 成本归因设计: 建议按“成本查看者”、“成本分析者”、“成本管理者”、“成本审批者”四级角色体系设计
2.3 权限(Permission)
权限是对受保护资源执行特定操作的许可。在云成本场景中,权限通常表现为“对某成本报表的读取”、“对预算的修改”、“对资源标签的编辑”。
- 结构: 权限 = 操作(Operation)+ 资源(Resource)
- 粒度: 从粗粒度(如“查看所有成本”)到细粒度(如“查看项目A下2024年Q1的计算资源成本”)
- 成本归因关键权限:
cost:report:read— 读取成本报告cost:budget:write— 修改预算cost:tag:admin— 管理成本标签cost:anomaly:alert— 配置异常告警
2.4 会话(Session)
会话是用户与系统之间的一次交互过程,在 RBAC 中用于控制用户在当前登录周期内激活哪些角色。会话机制是实现最小权限原则的关键技术手段。
- 作用: 用户登录时选择激活的角色集合,系统仅授予该集合对应的权限
- 成本归因价值: 通过会话审计日志,可以精确追溯“在什么时间、以什么角色、执行了什么成本操作”
- 典型实现: JWT 中的
roles字段、云平台的临时会话凭证(STS)
3. RBAC 与 ABAC 的区别
ABAC(Attribute-Based Access Control,基于属性的访问控制)是另一种主流的访问控制模型。与 RBAC 基于“角色”不同,ABAC 基于“属性”进行动态权限判定。在云成本归因场景中,两者常常组合使用。
| 对比维度 | RBAC | ABAC |
|---|---|---|
| 授权依据 | 用户所属的角色 | 用户属性、资源属性、环境属性 |
| 权限判定时机 | 角色分配时静态确定 | 请求发生时动态计算 |
| 粒度 | 粗粒度到中粒度 | 细粒度,可精确到单条数据 |
| 管理复杂度 | 低,角色数量可控 | 高,属性与策略数量易膨胀 |
| 适用场景 | 组织架构稳定、权限需求可预定义 | 多维度条件组合、临时性/上下文敏感权限 |
| 成本归因示例 | “财务角色可以查看所有成本报告” | “仅当用户部门=成本报告所属部门且当前时间在月结周期内时,允许查看” |
| 性能影响 | 低,预计算角色权限集 | 中高,每次请求需评估策略引擎 |
4. RBAC 核心交互流程
下图展示了 RBAC 模型中用户、角色、权限、会话四个核心元素之间的交互关系,以及权限判定的完整流程。
5. 成本归因中的 RBAC 设计要点
在云成本归因平台中实施 RBAC 时,需要特别关注以下设计原则:
- 角色与成本中心对齐: 每个角色应明确关联一个或多个成本中心编码,确保权限范围与财务核算单元一致。
- 最小权限原则: 默认不授予任何成本权限,按需分配。使用会话机制确保用户仅激活当前任务所需的角色。
- 职责分离(SoD): 成本预算的“创建者”与“审批者”必须为互斥角色,防止单人绕过预算控制。
- 审计追踪: 所有角色分配、会话创建、权限变更操作均需记录完整审计日志,字段包括:操作人、目标用户、角色、时间、IP、会话ID。
- 角色生命周期管理: 定期审查角色成员列表,移除离职员工或已转岗人员的角色分配,避免权限残留导致成本数据泄露。