基于属性的访问控制(ABAC)是一种授权模型,它评估属性(或特征),而不是角色,以确定访问。ABAC的目的是保护数据、网络设备和IT资源等对象免受未经授权的用户和操作的影响,这些用户和操作不具有组织安全策略定义的“批准”特征。
ABAC作为一种逻辑访问控制形式在过去十年中变得突出,它是从简单的访问控制列表和基于角色的访问控制(RBAC)演变而来的。作为帮助联邦组织改进其访问控制架构的一项举措的一部分,联邦首席信息官委员会于2011年批准了ABAC。他们建议ABAC作为组织安全共享信息的模式。
在这篇文章中,我们将深入探讨基于属性的访问控制是如何工作的,并考虑采用ABAC对您的组织有益的方式。
基于属性的访问控制的主要组件是什么?
使用ABAC,组织的访问策略根据访问事件中涉及的主题、资源、操作和环境的属性强制执行访问决策。
主题
主题是请求访问资源以执行操作的用户。用户配置文件中的主题属性包括ID、工作角色、组成员身份、部门和组织成员身份、管理级别、安全许可和其他识别标准。ABAC系统通常从HR系统或目录中获取这些数据,或者从登录期间使用的身份验证令牌中收集这些信息。
资源
资源是主体想要访问的资产或对象(例如文件、应用程序、服务器甚至API)。资源属性都是识别特征,如文件的创建日期、所有者、文件名和类型以及数据敏感性。例如,当尝试访问您的在线银行帐户时,所涉及的资源将是“bank account = <correct account number>.”
行动
该操作是用户试图对资源执行的操作。常见的动作属性包括“读取”、“写入”、“编辑”、“复制”和“删除”。在某些情况下,多个属性可以描述一个动作。继续在线银行示例,请求转账可能具有“action type = transfer”和“amount = $200.”的特征
环境
环境是每个访问请求的更广泛的上下文。所有环境属性都与上下文因素有关,如访问尝试的时间和位置、受试者的设备、通信协议和加密强度。上下文信息还可以包括组织已确定的风险信号,例如认证强度和受试者的正常行为模式。
ABAC如何使用属性来表达访问控制策略?
属性是访问事件中涉及的组件的特征或值。基于属性的访问控制根据规则分析这些组件的属性。这些规则定义了授权哪些属性组合,以便主体成功地对对象执行操作。
基于属性在环境中的交互方式,每个ABAC解决方案都可以在环境中评估它们,并实施规则和关系。策略考虑属性来定义允许或不允许哪些访问条件。
例如,假设以下策略已到位:
“如果受试者担任通信工作,他们应该能够阅读和编辑所代表业务部门的媒体策略。”
每当发生访问请求时,ABAC系统都会分析属性值,以查找与已建立策略的匹配。只要上述策略有效,具有以下属性的访问请求应授予访问权限:
- Subject’s “job role” = “communications”
- Subject’s “business unit” = “marketing”
- Action = “edit”
- Resource “type” = “media strategy document”
- Resource “business unit” = “marketing”
实际上,ABAC允许管理员实现基于策略的细粒度访问控制,使用不同的属性组合来创建特定或广泛的访问条件。
ABAC的优点是什么?
现在您已经知道了ABAC是什么以及它是如何工作的,让我们来看看它如何保持业务的敏捷性和安全性。基于属性的访问控制有三个主要好处:
精细而灵活的决策
ABAC的主要优势是其灵活性。本质上,决策的局限性在于必须考虑哪些属性,以及计算语言可以表达的条件。ABAC允许最大范围的主题访问最大数量的资源,而不需要管理员指定每个主题和对象之间的关系。以以下步骤为例:
- 当受试者加入组织时,他们会被分配一组受试者属性(例如,John Doe是放射科的顾问)。
- 创建对象时,将为其分配属性(例如,包含心脏病患者心脏成像测试文件的文件夹)。
- 然后,管理员或对象所有者创建访问控制规则(例如,“放射科的所有顾问都可以查看和共享心脏病患者的心脏成像测试文件”)。
管理员可以进一步修改这些属性和访问控制规则,以满足组织的需要。例如,当为外部主体(如承包商和供应商)定义新的访问策略时,他们可以在不手动更改每个主体-对象关系的情况下这样做。ABAC允许各种各样的访问情况,几乎没有管理监督。
与新用户的兼容性
使用ABAC,管理员和对象所有者可以创建允许新主体访问资源的策略。只要为新受试者分配了访问对象所需的属性(例如,放射科的所有顾问都分配了这些属性),就不需要修改现有规则或对象属性。
ABAC模型允许组织在招聘新员工和支持外部合作伙伴时保持灵活。
严格的安全和隐私
通过属性的使用,ABAC允许决策者控制许多情境变量,以细粒度为基础确保访问安全。例如,在RBAC模型中,人力资源团队可能始终可以访问敏感的员工信息,如工资数据和个人身份信息。使用ABAC,管理员可以实施考虑上下文的智能访问限制。例如,人力资源员工只能在特定时间或仅限相关分支机构的员工访问这些信息。
因此,ABAC允许组织有效地弥补安全漏洞,尊重员工隐私,同时有效地遵守法规遵从性要求。
ABAC的缺点是什么?
谈到ABAC,收益远远超过成本。但在实现基于属性的访问控制之前,企业应该记住一个缺点:实现复杂性。
设计和实施复杂
ABAC很难起步。管理员需要手动定义属性,将其分配给每个组件,并创建一个中央策略引擎,根据各种条件(“如果是X,则是Y”)确定允许哪些属性。该模型对属性的关注也使得在所有属性和规则到位之前,很难衡量特定用户可用的权限。
然而,虽然实现ABAC需要花费大量的时间和资源,但付出的努力确实是有回报的。管理员可以复制和重用类似组件和用户位置的属性,ABAC的适应性意味着为新用户和访问情况维护策略是一件相对“不干涉”的事情。
我的组织的正确访问控制模型是什么?
组织的规模是一个关键因素。由于ABAC最初难以设计和实现,小企业可能难以考虑。
对于中小型企业来说,RBAC是ABAC的一个更简单的替代方案。每个用户都被分配了一个具有相应权限和限制的唯一角色。当用户移动到新角色时,其权限将更改为新职位的权限。这意味着,在明确定义角色的层次结构中,很容易管理少量内部和外部用户。
然而,当必须手动构建新角色时,对于较大的组织来说效率不高。一旦定义了属性和规则,当用户和利益相关者众多时,ABAC的策略就更容易应用,同时也降低了安全风险。
简而言之,如果出现以下情况,请选择ABAC:
- 你在一个拥有众多用户的大型组织中
- 您需要深度、特定的访问控制功能
- 你有时间投资于一个能走得更远的模型
- 您需要确保隐私和安全合规
但是,如果:
- 你在一家中小型企业
- 您的访问控制策略很宽泛
- 您的外部用户很少,而且您的组织角色已明确定义
Tags
本文:https://architect.pub/what-attribute-based-access-control-abac