基于Key-Value加速器的面向大数据安全的访问控制方法
技术领域
本发明涉及计算机大数据安全领域,尤其涉及一种基于Key-Value加速器的面向大数据安全的访问控制方法。
背景技术
Apache Ranger是一个用在Hadoop平台上并提供操作、监控、管理综合数据安全的框架,其使用基于策略(Policy-based)的访问权限模型,该模型通过细粒度的安全控制模型来表述“用户-资源-权限”逻辑,能够有效管Hadoop平台的数据安全,其中:
用户:由User、Group或Role来表达,User代表访问资源的用户,Group代表用户所属的用户组,Role代表角色;
资源:由Resource来表达,不同的组件对应不一样的业务资源;
权限:由(AllowACL,DenyACL)来表达,AllowACL为允许访问控制列表,用于描述允许访问的情况,DenyACL为否定访问控制列表,用于描述拒绝访问的情况。
下面为有关访问权限模型中名词定义:
定义1,访问控制项:访问者(用户、用户组、角色)集合与访问类型的集合,用AccessItem表示,公式如(1):
AccessItem = List<User/Group/Role> + List<AccessType> (1)
其中:
User/Group/Role:大数据资源的访问对象;
AccessType:访问对象对大数据资源的操作类型,即访问权限。
定义2,允许访问控制项:允许访问大数据资源的控制项,用allow表示。
定义3,异常允许访问控制项:允许访问控制项中的异常访问项,用allowException表示。
定义4,允许访问控制列表:允许访问控制项集合中加上允许异常控制项集合的数据集,用AllowACL表示,公式如(2)。
AllowACL = List<AccessItem> allow + List<AccssItem> allowException (2)
定义5,否定访问控制项:不允许访问大数据资源的控制项,用deny表示。
定义6,否定异常访问控制项:否定访问控制项中的异常访问项,用denyException表示。
定义7,否定访问控制列表:否定访问控制项集合中否定异常访问控制项集合的数据集,用DenyACL表示,公式如(3)。
DenyACL = List<AccessItem> deny + List<AccssItem> denyException (3)
定义8,访问控制策略:大数据资源的访问对象访问资源的逻辑规则,由资源、允许控制列表、否定控制列表构成,用Policy表示,公式如(4)。
Policy = List<Resource> + AllowACL + DenyACL (4)
定义9,访问控制服务:访问控制策略的集合,用Service表示。
当前,Apache Ranger基于策略的访问控制流程如图2。
图2的访问控制流程解释如下:
1)用户访问资源;
2)根据访问的资源获取与资源相关的所有权限策略;
3)检查访问的资源是否在策略的否定访问控制项中,如在,进入第4)步,否则进入第5)步;
4)访问的资源不在策略的异常否定访问控制项中,则进入第8)步,否则进入第5)步;
5)访问的资源在策略的允许访问控制项中,则进入第6)步,否则进入第8)步;
6)访问的资源不在策略的异常允许访问控制项中,则进入第7)步,否则进入第8)步;
7)允许用户访问资源;
8)拒绝用户访问资源。
基于定义1~9,“用户-资源-权限”策略的访问控制方法如公式(5)。
其中:
ao:访问大数据的对象;
res:被访问的资源;
at:权限。
公式(5)的实现流程如图2,它包含策略的查询、策略的解析、根据解析的策略进行逻辑判断,公式(5)的实现逻辑由公式(1)~(4)按照如下顺序构成:
AccessItem=List<User/Group/Role>+List<Access Type>
DenyACL=List<AccessItem>deny+List<AccssItem>denyException
AllowACL=List<AccessItem>allow+List<AccssItem>allowException
Policy=List<Resource>+AllowACL+DenyACL
因此,要判断用户是否具有按特定方式访问大数据的权限,公式(5)将会有四重循环,因此公式(5)的时间复杂度:T(n)=O(n4)。
在大数据系统中,因数据量大、集群节点多,资源分布在不同集群节点,该算法在不同节点,从海量数据中判断访问对象是否具有访问某种资源权限的时间相对较长,因此当前基于“用户-资源-权限”策略的访问控制的具体实现方法将会严重影响大数据系统的性能。
下面为上述方法的验证过程:
构建一个包含4个节点的大数据集群,以大数据平台HBase为测试对象,来测试并验证当前Apache Ranger基于策略的访问控制流程对HBase性能的影响。测试集群节点硬件配置详情如表1。
表1测试集群节点硬件配置详情
使用YCSB(Cloud Serving Benchmark)工具进行测试。YCSB是Yahoo公司的一个用来对云服务进行基础测试的工具,其目标是促进新一代云数据服务系统的性能比较,常用于测试HBase的相对性能;本实验使用该工具产生102.4GB的数据量,对当前基于“用户-资源-权限”策略的访问控制功能进行测试,测试结果如表2。
表2当前基于“用户-资源-权限”策略的访问控制功能测试结果
从表2可以看出:
1)在HBase系统中,应用一条安全策略进行访问控制,不记录日志的情况下,HBase的性能下降了10.10%;
2)在HBase系统中,应用一条安全策略进行访问控制,记录日志的情况下,HBase的性能下降了12.90%。
因此,当前Apache Ranger基于策略的访问控制对大数据系统性能影响较大。
发明内容
本发明的目的是为了提供一种基于Key-Value加速器的面向大数据安全的访问控制方法,减少了在应用大数据安全策略时大数据系统性能显著下降的问题。
为解决以上技术问题,本发明的技术方案为:基于Key-Value加速器的面向大数据安全的访问控制方法,其步骤包括:
步骤1):用户访问资源;用户每次访问资源时包含“用户-资源-权限”三要素;
步骤2):基于“用户-资源-权限”三要素构建Key;具体方法为:系统接收到用户的访问请求,解析获得本次访问的用户、本次要访问的资源以及本次访问的权限,把本次访问的用户、本次要访问的资源以及本次访问的权限作为字符串相加即得Key;
步骤3):访问Key-Value加速器,根据步骤2)构建的Key从Key-Value加速器中获取包含“用户-资源-权限”三要素的对象,对象由对象特征Value构成;对象特征Value包括服务信息、策略详情列表;服务信息包含每种服务的名称、服务相关的基础配置、资源详情、访问类型、策略条件;策略详情列表包含策略相关的资源、策略访问者对象、否定访问策略详情、允许访问策略详情、异常允许访问策略详情、异常否定访问策略详情;
步骤4):判断Key-Value加速器是否存在Key对应的对象;若存在,则执行步骤5);若不存在,则执行步骤6);
步骤5):读取并解析该对象,获取本次访问资源情况;判断用户是否有访问权限,若有,则允许访问,若没有,则拒绝访问;返回本次访问结果并结束本次控制流程;
步骤6):根据访问的资源获取策略资源,策略资源为与访问的资源相关的所有权限策略;策略资源为json文件,把json文件读取到内存;
步骤7):解析策略资源为策略资源对象;把读取到内存中的json文件转化为策略资源对象;
步骤8):获取本次访问的用户、资源、权限;
步骤9):判断本次访问的用户、资源、权限情况是否在策略资源的否定访问控制项中,若存在,则执行步骤10),否则执行步骤11);
步骤10):判断本次访问的用户、资源、权限情况是否在策略资源的异常否定访问控制项中,若存在,则执行步骤11),否则执行步骤14);
步骤11):判断本次访问的用户、资源、权限情况是否在策略资源的允许访问控制项中,若存在,则执行步骤12),否则执行步骤14);
步骤12):判断本次访问的用户、资源、权限情况是否在策略资源的异常允许访问控制项中,若存在,则执行步骤13),否则执行步骤14);
步骤13):允许本次用户访问资源;
步骤14):拒绝本次用户访问资源;
步骤15):根据步骤13)和步骤14)产生的资源访问情况作为对象特征Value,根据步骤2)构建的Key,构建Key-Value加速器。
本发明中,当策略发生改变时,所述访问控制方法还包括以下步骤:
步骤16):获取变更后的策略资源;变更后的策略资源也为json文件;
步骤17):变更后的策略资源解析为策略资源对象;将json文件转化为变更后的策略资源对象;
步骤18):读取Key-Value加速器,获得Key;
步骤19):判断Key-Value加速器是否读取完成,若读取完,则结束本次访问;若没有读取完,则返回步骤9)并执行步骤9)至步骤14)后,执行步骤20);
步骤20):根据步骤13)和步骤14)产生的资源访问情况作为对象特征Value,根据步骤2)构建的Key,更新Key-Value加速器;
步骤21):循环执行步骤19)和步骤20),直至Key-Value加速器更新完成。
与现有技术相比,本发明具有如下有益效果:
一、构建、访问Key-Value加速器。在用户每次访问资源时,基于“用户-资源-权限”构建Key,基于构建的Key访问Key-Value加速器,如果Key-Value加速器中存在对应的权限对象,则直接解析返回权限对象,返回本次访问结果,如不存在,则建Key-Value加速器,并返回本次访问结果;用户每次访问,基于同类的“用户-资源-权限”,当第一次访问时,需要构建Key-Value加速器,基于同类的“用户-资源-权限”,用户再次访问时,直接返回权限结果,加快了用户访问速度,在频繁访问数据的情况下,本发明方法的时间复杂度可以近似等于O(n),因此,应用本发明方法,Apache Ranger基于策略的访问控制对大数据系统性能的影响将显著降低;
二、权限策略发生改变时,更新Key-Value加速器;保证了Key-Value加速器的准确性和实时性。
附图说明
图1为本发明实施例整体流程示意图;
图2为背景技术中现有的Apache Ranger基于策略的访问控制流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。
请参考图1,本发明为基于Key-Value加速器的面向大数据安全的访问控制方法,其步骤具体包括:
步骤1):用户访问资源;用户每次访问资源时包含“用户-资源-权限”三要素;
步骤2):基于“用户-资源-权限”三要素构建Key;具体方法为:系统接收到用户的访问请求,解析获得本次访问的用户、本次要访问的资源以及本次访问的权限,把本次访问的用户、本次要访问的资源以及本次访问的权限作为字符串相加即得Key;
步骤3):访问Key-Value加速器,根据步骤2)构建的Key从Key-Value加速器中获取包含“用户-资源-权限”三要素的对象,对象由对象特征Value构成;对象特征Value包括服务信息、策略详情列表;服务信息包含每种服务的名称、服务相关的基础配置、资源详情、访问类型、策略条件;策略详情列表包含策略相关的资源、策略访问者对象、否定访问策略详情、允许访问策略详情、异常允许访问策略详情、异常否定访问策略详情;
步骤4):判断Key-Value加速器是否存在Key对应的对象;若存在,则执行步骤5);若不存在,则执行步骤6);
步骤5):读取并解析该对象,获取本次访问资源情况;判断用户是否有访问权限,若有,则允许访问,若没有,则拒绝访问;返回本次访问结果并结束本次控制流程;
步骤6):根据访问的资源获取策略资源,策略资源为与访问的资源相关的所有权限策略;策略资源为json文件,把json文件读取到内存;
步骤7):解析策略资源为策略资源对象;把读取到内存中的json文件转化为策略资源对象;
步骤8):获取本次访问的用户、资源、权限;
步骤9):判断本次访问的用户、资源、权限情况是否在策略资源的否定访问控制项中,若存在,则执行步骤10),否则执行步骤11);
步骤10):判断本次访问的用户、资源、权限情况是否在策略资源的异常否定访问控制项中,若存在,则执行步骤11),否则执行步骤14);
步骤11):判断本次访问的用户、资源、权限情况是否在策略资源的允许访问控制项中,若存在,则执行步骤12),否则执行步骤14);
步骤12):判断本次访问的用户、资源、权限情况是否在策略资源的异常允许访问控制项中,若存在,则执行步骤13),否则执行步骤14);
步骤13):允许本次用户访问资源;
步骤14):拒绝本次用户访问资源;
步骤15):根据步骤13)和步骤14)产生的资源访问情况作为对象特征Value,根据步骤2)构建的Key,构建Key-Value加速器。
本发明中,当策略发生改变时,所述访问控制方法还包括以下步骤:
步骤16):获取变更后的策略资源;变更后的策略资源也为json文件;
步骤17):变更后的策略资源解析为策略资源对象;将json文件转化为变更后的策略资源对象;
步骤18):读取Key-Value加速器,获得Key;
步骤19):判断Key-Value加速器是否读取完成,若读取完,则结束本次访问;若没有读取完,则返回步骤9)并执行步骤9)至步骤14)后,执行步骤20);
步骤20):根据步骤13)和步骤14)产生的资源访问情况作为对象特征Value,根据步骤2)构建的Key,更新Key-Value加速器;
步骤21):循环执行步骤19)和步骤20),直至Key-Value加速器更新完成。
本实施例中,使用背景技术中表1的测试环境,对本发明方法进行测试验证,测试结果如表3。
表3使用本发明的访问控制功能测试结果
从表3的结果,能够得到如下结论:
1)在HBase系统中,应用一条安全策略进行访问控制,不记录日志的情况下,HBase的性能下降了2.74%;
2)在HBase系统中,应用一条安全策略进行访问控制,记录日志的情况下,HBase的性能下降了9.26%。
通过上述实验可得:
1)本发明可以显著降低基于细粒度安全策略的访问控制模型对大数据系统性能的影响;
2)在大数据系统中,日志会显着影响系统性能;
通过背景技术中的表2与上述实验中表3的测试结果比较可以看出,与现有ApacheRanger的访问控制策略实现方法相比,应用本发明方法,Apache Ranger基于策略的访问控制对大数据系统性能的影响将显著降低。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。