确定谁可以和不能访问某些数据的最传统方法之一是一个称为基于角色的访问控制(RBAC)的框架。此方法定义公司内的特定用户角色,然后为每个角色指定权限。但如果一家公司需要超越这些简单的授权呢?每次添加新的数据平台、数据源或数据集时,必须为每个角色定义访问权限。在大型、复杂的公司,甚至是小型但不断发展的公司中,可能有数十甚至数百个角色需要管理,这些角色不断扩大。
最简单地说,RBAC可能看起来像这样:ROLE A
- 包括员工X、员工Y和员工Z
- 可以访问文件夹3、文件夹4和文件夹5
角色B
- 包括员工A、员工B和员工C
- 可以访问文件夹1、文件夹2和文件夹3
您可以看到,这会变得非常复杂和难以管理。细粒度访问控制(包括基于属性的访问控制)是控制数据和资源访问的一种更优雅、更细粒度的方式,是一种更强大的选择。
什么是细粒度访问控制?
细粒度访问控制是一种控制谁可以访问某些数据的方法。与广义数据访问控制(也称为粗粒度访问控制)相比,细粒度访问控制使用了更细微和可变的方法来允许访问。
最常用于大量数据源存储在一起的云计算中,细粒度访问控制为每个数据项提供了自己指定的访问策略。这些标准可以基于许多特定因素,包括请求访问的人员的角色和对数据的预期操作。例如,一个人可能被授予编辑和更改数据的权限,而另一个人可能只被授予读取数据的权限而不进行任何更改。
为什么细粒度访问控制很重要?
在云计算中,将大量信息存储在一起的能力是一个巨大的竞争优势。但是,这些数据的类型、来源和安全级别可能有所不同,特别是考虑到与客户数据或财务信息相关的数据安全合规性法律法规时。
当数据类型可以单独存储,并且可以根据存储位置简单地分配对特定数据类型的访问权限(例如,Tim可以访问X文件夹,Natalie可以访问Y文件夹等)时,粗粒度访问控制可能会起作用,如在本地环境中。但当数据一起存储在云中时,细粒度访问控制至关重要,因为它允许具有不同访问要求的数据在同一存储空间中“生存”,而不会遇到安全或法规遵从性问题。
如何使用细粒度访问控制?
以下是细粒度访问控制的一些最常见用例:
用例1:多个数据源存储在一起
在云中,大量不同的数据类型存储在一个地方。您不能简单地基于角色授予对这些存储段的批量访问权限—某些数据类型可能可以由某个角色访问,而其他数据类型则不应该。因此,细粒度访问控制非常重要,因为它为特定数据类型设置访问参数,即使在一起存储时也是如此。
用例2:基于角色的不同访问程度
细粒度访问控制最显著的好处之一是它允许不同程度的访问,而不是基于用户、其角色或所属组织的通过/失败方法。在粗粒度系统中,数据可能会根据谁试图访问它而简单地分为两类——允许或禁止。但是有了细粒度的访问控制,就有了更微妙和变化的空间。
例如,假设三名员工具有不同的角色和访问级别。对于某段数据,您可以设置参数,以便其中一个员工可以访问该文件,对其进行更改,甚至移动其位置。第二个员工可以查看文件并移动它,但不能访问它。第三名员工可能只被授予读取文件的权限。
这种级别的特殊性可以帮助您的公司避免因某些人需要查看数据而无法查看而带来的不便和沮丧,因为他们的权限受到了完全限制。
用例3:确保移动访问安全
越来越多的公司支持通过智能手机等移动设备远程访问数据。与此同时,由于人们在家或在不同的时间工作,标准工作日也在延长。考虑到这一点,公司可能需要实施不仅基于角色或身份,而且基于时间或位置等因素的数据访问控制。
细粒度访问控制允许这样做。例如,您可以将访问权限限制在特定位置,这样员工就无法从可能受到破坏的第三方无线服务器访问该位置。
用例4:第三方访问
在许多情况下,B2B企业可能希望让第三方访问其存储在云中的部分资产,而不会有数据意外更改或安全受损的风险。细粒度访问控制可以允许这些公司授予第三方只读访问权限,从而确保其数据的安全。
细粒度访问控制的要素是什么?
通常认为有三种主要形式的访问控制解决方案:
- 基于角色的访问控制
- 基于属性的访问控制
- 基于策略的访问控制
基于角色的解决方案被认为是粗粒度的,因为它们将用户组织为“角色”,并仅基于这些角色授予或拒绝访问权限,而忽略了其他因素。这意味着它们可能过于宽泛或限制,无法有效扩展。事实上,一项独立研究发现,Apache Ranger的RBAC方法需要比Immuta的基于属性的方法多75倍的策略更改。
在细粒度访问控制方面,两种主要方法是基于属性的访问控制和基于目的的访问控制。
基于属性的访问控制
基于属性的访问控制将“属性”分配给特定用户和数据,然后根据这些属性确定访问。这些属性可以包括用户的位置或角色,但也可以包括他们的位置、一天中的时间和其他因素。数据属性可能包括数据类型、创建日期或存储位置等。
基于目的的访问控制
基于目的的访问控制是最灵活的访问控制授权形式,它使用灵活且不断发展的逻辑连接将一系列角色和属性结合在一起。它被认为是一种细粒度访问控制解决方案,因为它使用多个属性来确定数据是否可以访问,以及访问的程度。这篇关于使用Databricks和Immuta实现零信任的博客介绍了基于目的的访问控制。
选择数据访问控制工具
正在寻找一种能够提供细粒度访问控制以及更多功能的数据访问控制工具?Immuta通过在查询时动态应用的自动、基于属性和目的的控件实现自助数据访问。这些数据访问控制由一系列增强数据访问控制和通用云兼容性和安全性的其他功能补充,包括:
- 敏感数据发现和分类
- 动态数据屏蔽
- 数据策略执行和审核
凭借Immuta的细粒度、动态访问控制功能,数据工程和运营团队将其角色数量减少了100倍,并将自助数据访问从几个月减少到几秒钟。
Tags
本文:https://architect.pub/what-fine-grained-access-control-and-why-its-so-important