《企业访问控制策略落地指南》
第2章 访问控制模型

2. 访问控制模型:DAC、MAC、RBAC

访问控制模型是定义“谁”能够以“何种方式”访问“哪些资源”的规则框架。在企业安全架构中,选择合适的模型是策略落地的核心。本节将深入剖析三种经典模型:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。

DAC 自主访问控制 所有者决定权限 灵活性高,风险分散 ⭐ 文件系统、个人文档 MAC 强制访问控制 系统策略强制 标签/级别控制 🔒 军事、政府机密系统 RBAC 基于角色的访问控制 角色关联权限 用户继承角色 🏢 企业ERP、OA系统

图2-1:三大访问控制模型核心特征对比

2.1 自主访问控制(DAC)

定义:资源的所有者(创建者)可以自主决定谁可以访问其资源,以及授予何种权限(读、写、执行等)。

📌 核心特征

  • 所有权驱动:每个资源都有一个明确的所有者。
  • 权限可传递:用户可以将权限授予其他用户(如Linux的chmod)。
  • 灵活性高:适合协作环境,但安全性依赖用户判断。
  • 典型实现:Unix/Linux文件权限(rwx)、Windows NTFS权限。
Alice 文件所有者 📄 report.pdf 授予读/写权限 Bob 被授权访问

图2-2:DAC模型——Alice自主将文件权限授予Bob

2.2 强制访问控制(MAC)

定义:系统根据全局安全策略(如安全标签、密级)强制控制所有主体对客体的访问,用户无法改变权限。

🔐 核心特征

  • 策略集中:由安全管理员定义全局规则(如Bell-LaPadula模型)。
  • 标签机制:每个主体(用户/进程)和客体(文件/设备)都有安全标签(如:绝密、机密、公开)。
  • 不可绕过:即使文件所有者也无法降低其安全级别。
  • 典型实现:SELinux、AppArmor、军用级系统。
系统安全策略(强制规则) 用户A 安全级别:机密 文件X 安全级别:绝密 ❌ 拒绝访问 机密 < 绝密 用户B 安全级别:绝密 ✅ 允许访问 绝密 ≥ 绝密

图2-3:MAC模型——系统根据安全标签强制判定访问

2.3 基于角色的访问控制(RBAC)

定义:权限不直接授予用户,而是授予“角色”。用户通过被分配角色来获得相应权限,实现用户与权限的逻辑分离。

🏢 核心特征

  • 角色作为中介:用户 ↔ 角色 ↔ 权限,三层映射关系。
  • 最小权限原则:角色只包含完成工作所需的最小权限集。
  • 职责分离(SoD):可配置互斥角色(如出纳与会计不能同一人)。
  • 典型实现:NIST RBAC标准、Spring Security、企业AD/LDAP。
用户 张三 李四 王五 角色 管理员 审计员 普通用户 权限 📝 创建用户 🔍 查看日志 📄 读取文档 ✏️ 编辑文档 🗑️ 删除文档

图2-4:RBAC模型——用户通过角色获得权限

2.4 三种模型对比总结

维度 DAC MAC RBAC
控制主体 资源所有者 系统/安全管理员 角色管理员
灵活性 高 低 中高
安全性 低(依赖用户) 高(强制策略) 中高(可配置)
管理复杂度 低 高 中
典型场景 个人电脑、协作编辑 军事、政府、金融核心 企业ERP、CRM、OA

2.5 企业落地建议

💡 策略选择矩阵

  • 中小型企业:以RBAC为主,结合DAC处理个人文件共享需求。
  • 大型/合规敏感企业:核心系统采用MAC(如SELinux),业务系统采用RBAC+ABAC(属性扩展)。
  • 混合架构:使用RBAC作为统一框架,在关键数据节点叠加MAC标签控制。

注:现代企业常采用RBAC作为基础,并引入ABAC(基于属性的访问控制)进行动态扩展,但RBAC仍是落地最广泛的模型。

应用层:RBAC 角色管理(用户 ↔ 角色 ↔ 权限) 策略层:MAC 强制标签(安全级别、分类) 基础设施层:DAC 文件系统权限(NTFS/Unix)

图2-5:企业级访问控制分层落地架构(RBAC + MAC + DAC)


专注课程资料整理