什么是基于角色的访问控制 (RBAC)?

基于角色的访问控制 (RBAC) 通过定义的角色和特权来限制仅经授权用户可访问系统。RBAC 是最低特权访问的基础,其亦可用于实现其他访问模型,例如基于属性的访问控制 (ABAC)。

基于角色的访问控制的原理是什么?

基于角色的访问控制背后的理念很简单:将用户对系统和数据的访问权限限制在完成其工作所需的最低限度内,不能再多,这个概念被称为最低特权原则(有时缩写为 PoLP)。

在基于角色的访问环境中,用户在组织中的角色决定了授予他们的特定网络权限。这意味着禁止较低级别的员工访问高度敏感的信息和资源,但基于角色的访问级别通常粒度更细。妥当实施 RBAC 后,用户应无法访问其分配的工作区域之外的任何资源;例如,营销人员不应有权访问开发人员环境,反之亦然。

此外,基于角色的访问还用于限制用户可以对已被授予访问权限的系统或文件执行的操作。用户可能对某些文件或系统(例如数据库)具有只读访问权限,但对其他文件或系统则具有读/写访问权限。

RBAC 和 ABAC 对比

基于角色的访问控制通常与基于属性的访问控制按同义使用。虽然 ABAC 和 RBAC 不同,但 RBAC 经常与 ABAC 结合使用。

ABAC 比 RBAC 粒度更细,可以看作是基于角色访问的扩展或增强。RBAC 取决于用户在组织中的角色,但在 ABAC 模型中,用户访问权限取决于属性的组合,而不仅仅是用户角色。这些包括但不限于用户在组织中的角色,他们尝试从何处访问资源,他们正在使用的设备,以及与他们尝试访问的系统或应用关联的属性。这使组织能够根据单个用户的风险状况授予访问权限,并实施限制。

例如,您可能希望限制您的 IT 管理员远程访问后端系统,除非他们使用了 VPN 或远程桌面连接管理器,或者您可能希望禁止所有员工访问公司资源,除非他们使用的是公司提供的设备。

RBAC 和访问控制列表 (ACL) 对比

访问控制列表 (ACL) 是可访问特定资源的用户列表,以及每个用户对该资源拥有的权限(只读、读写等)。ACL 是自主访问控制 (DAC) 模型的基础。

ACL 和 DAC 最常见的示例是 Windows 文件系统,它允许用户和管理员为每个对象(例如文本文档或文件夹)定义单独的 ACL。

网络管理员亦使用访问控制列表(通常由 IP 地址组成)来过滤 VPN、Web 应用防火墙 (WAF) 以及网络路由器和交换机的流量。ACL 可包含允许 IP 的“允许列表”或不允许 IP 的“阻止列表”。

如果您认为这听起来像是有很多工作要做,那您说对了。维护大量允许和阻止列表既耗时又容易出错,这就是为什么 ACL(和 DAC 模型)仅在涉及少量用户的孤立情况下才有用的原因。

总之:RBAC 在组级别定义访问特权,而 ACL 则在单个用户或 IP 级别定义访问特权。这使得 RBAC 比访问控制列表更不费力且更不易出错,因此在拥有数十、数百甚至数千用户的商业环境中更可行。

RBAC 的优点是什么?

实施基于角色的访问控制有诸多好处,包括:

增强安全性

限制员工只能访问其执行工作所需的资源,可以防止粗心或恶意的内部人员删除、泄露文件和其他数字资产(例如数据库和源代码)或破坏其完整性。

此外,如果外部威胁行为者窃取了一组有效的登录凭据,RBAC 和最低特权访问将阻止他们在网络中横向移动并提升特权。

RBAC 和最低特权访问也是现代零信任网络访问模型的关键组成部分。

支持合规计划

基于角色的访问使公司能够满足行业和监管合规要求,包括 HIPAA、GDPR 以及其他强制对个人身份信息 (PII) 和其他敏感数据进行保密和隐私控制的数据保护和隐私框架。这在医疗保健和金融等受到高度监管的行业以及政府机构中尤为重要。

降低成本和管理费用

当员工入职和离职时,员工在公司内承担新角色或工作职责时,或者组织需要向供应商或第三方承包商授予访问权限时,RBAC 模型的预定义用户角色可最大限度地减少管理开支。若要授予新用户访问权限或更改现有用户的访问权限,只需为其分配正确的角色即可。同样,当用户从公司离职时,IT 和安全管理员可以快速撤销其系统访问权限。

通过让管理员了解用户的访问和活动,RBAC 使组织能够确定可以更经济高效地使用网络资源(例如带宽和存储)的领域。

如何实现基于角色的访问控制

1. 制定符合您公司需求的战略。

在开始定义角色之前,先盘点系统以确定需要控制对哪些资源的访问。确定处理或存储敏感信息的系统,例如客户数据库和开发人员环境,以及每个人都需要访问的系统,例如公司电子邮件和帮助台工单系统。

还要检查公司的业务流程、技术、合规性要求和当前的安全状况。确定任何存在的缺口,例如整个组织的政策执行不一致。

请记住,您可能会希望将 RBAC 与 ABAC 或其他模型结合使用,尤其是在实施零信任网络访问的情况下。

2. 定义用户角色。

现在是时候分析您的员工并将用户分组为具有相似访问需求的角色了。从大致的框架开始,例如按部门考虑用户,继而再细化用户角色。

切勿定义过多的角色,因为那样会违背使用 RBAC 的本意。考虑使用团队角色映射,将用户直接分配到团队中,然后为团队分配自定义角色。这将节省时间,提高策略一致性,减少错误,并使管理员更容易使用基于角色的访问策略。

还要留意其他常见的缺陷,例如粒度不足、角色重叠和 RBAC 权限异常过多。

3. 建立适当的治理结构。

在定义了 RBAC 策略和用户角色之后,您需要一种方法来强制实施新策略,还需要一个变更管理流程,以便随着业务需求的变化对其进行更改。

为您的 RBAC 模型制定包含规则和指南的书面访问控制策略,包括性能指标、风险管理策略、角色重新评估程序和强制实施机制。一套明确的规则有助于防止“角色扩散”以及部门和单个用户之间的内部冲突。

4. 实施您的 RBAC 模型。

大型组织,尤其是未采用基于角色的模型的组织,可能会希望分阶段推出新计划,以避免用户混淆和日常运营中断。预计在此过程中会出现问题,包括需要您修改原计划的问题。这很正常,通过分阶段推出计划,您可以更轻松地解决这些问题。

5. 维护您的 RBAC 模型。

用户来来往往。业务需求在变。技术在变。市场在变。尽管如此,基于角色的访问控制无法自行维护。收集用户的反馈,持续监视安全状况,并定期审查角色、角色分配和访问日志,以了解哪些内容有效,哪些需要调整。

中文 (CN) 致电我们