一种基于Kerberos和HDFS的数据存储平台访问控制策略

2016-03-08 18:43王又立王晶
软件 2016年1期

王又立++王晶

摘要:重点关注云存储在访问安全性和隐私安全性上的两个问题,设计面向多租户的安全数据存储机制和用户访问控制机制,并结合企业实际需求,向租户提供安全、按需、实时和可扩展的存储服务。基于Kerberos的多租户访问控制策略将提升云存储平台的安全性,简化HDFS权限管理的复杂度,提高云存储平台权限管理的交互性能。

关键词:HDFS;数据存储平台;访问控制策略

中图分类号:TP391.41

文献标识码:A

DOI: 10.3969/j.issn.1003-6970.2016.01.016

0 引言

Eole平台是自主研发的,基于Hadoop构建,具有数据存储、数据处理、访问控制、权限管理、资源隔离和资源调度等多种功能的云端大数据存储与处理平台,可以为中小型企业或者企业内部提供云端的数据存储与数据计算,并保证不同租户数据的安全性。在保证安全性时,有两点问题尤其值得关注:第一,企业及个人存储在平台上的数据是不允许公司内部其它部门或其它地域的用户访问的,更加不能被同平台的租户窃取和篡改;第二,租户的敏感信息如果在平台上明文存储,则平台管理员完全有可能监守自盗,造成租户敏感信息的泄。

EOLE云存储平台作为一种多租户的数据存储平台,在给企业带来收益的同时,也需要对其数据的安全性提供保障。中小型企业利用EOLE云存储平台来存放企业内部数据,则要求这些数据不能够被公司内部其它部门或其它地域的用户访问,更加不能被同平台的租户窃取和篡改。因而,实现多租户访问控制是构建云存储平台亟待解决的重要问题之一。

基于此,本文基于Kerberos和HDFS (HadoopDistribute File System)的特点,结合了基于角色的访问控制策略的基本思想和其它一些用户属性,提出了一种面向多租户的访问控制策略。首先介绍一下存储平台的整体设计,包括访问控制策略与各个子模块之间的关系;然后重点介绍多租户访问控制策略,最后对加上访问控制之后的存储平台进行了相关测试。

1 相关工作

目前,针对云存储环境中多租户数据安全问题,人们多数采用的是传统的访问控制策略。例如:Amazon S3仅提供访问控制列表(Access ControlList,以下称ACL)和bucket来进行访问控制,Amazon弹性云仅仅是在用户客户端通过SOAP overHTTPS加密协议来保证客户端与远端连接的安全性, PCS2.5 (ParaScale Cloud Storage)也仅提供可扩展的数据加密功能来加密处理拷贝和迁移过程中的数据。这些策略都十分简单,基本上没有进行访问控制。

其实,传统的访问控制模型已经不能满足新型的云计算架构要求,以传统的RBAC为例,云中的主体和客体的定义发生了很多变化,云计算中出现了以多租户为核心、大数据为基础的服务模式,所以在云计算的访问控制要对主体和客体的有关概念重新界定,这就导致了传统的访问控制模型要进行优化和更新,使其更适用于云计算环境。我国研究人员沈晴霓于2011年在著作中提出了一种面向多租户的访问控制策略,其定义了主客体的安全标签,并由此生成角色树,再根据权限公式来进行访问控制。这个方法安全性虽然很高,普适性较好,但是没有利用HDFS本身所具有的一些特性,实现起来对以HDFS为基础的存储平台性能影响很大。

本文则基于HDFS自身提供的Kerberos的身份验证机制,以及在资源访问控制方面的ACL,设计一个以RBAC为基础的灵活的,可以按需定制的访问控制策略,主要创新点在于利用安全标签来建设层级目录,充分利用HDFS已有的数据,不需要额外记录数据的权限。同时,权限划分可根据企业需求定制,分享数据有时效性保证,足以保证不同租户之间资源的强隔离性,租户内部各个部门之间的适度隔离性。

2 平台总体设计

2.1 总体架构

数据平台总体架构如图1所示。该存储平台基于HDFS构建,充分利用了HDFS低成本高效率的优点。目前,HDFS存在两个问题:第一,在管理用户及其权限时操作仍然复杂,交互性差,不够便捷;第二,在访问控制方面,用户权限管理粒度较低,权限划分比较简单。针对这两个问题,在用户和数据层之间加入了一层数据存储平台。该平台向上可提供统一的安全的数据访问服务,向下可将数据进行统一的管理。在该平台的结构中,所有数据访问操作都要经过安全保证模块保证安全,而该模块的核心则是访问控制模块。权限管理和用户管理中对用户和角色的权限定义决定了访问控制中对用户进行的访问控制策略,基于这些策略,用户可以在平台上存储数据,操作数据,分享数据。

3 访问控制策略

3.1 策略设计原则

灵活性:由于各个企业对存储平台提出的不同程度的安全需求,本文提出的访问控制策略应当安全而灵活,企业可以根据自身的需求定制灵活的安全策略,保证其自身的数据存储安全。

层次性:本文提出的安全策略虽然既适用于个人用户,也适用于企业用户,但主要面向企业用户进行设计。基于企业组织结构的层次性,角色的定义和用户的权限分配上都将体现这种层次性的特性。

高效性:本文提出的安全策略是在HDFS提供的安全策略的基础上,面向多租户的场景提出的一种补充性策略,因此对HDFS提供的数据存储服务的性能影响不宜过大,力求做到无影响。

3.2 策略描述

存储平台作为多租户共享的一个平台,需要灵活的区分和支持不同企业在安全方面上的不同需求。为此,本文提出的访问控制策略以RBAC (Role BasedAccess Control)策略为基础,同时以HDFS文件路径作为角色映射的一种方式,让企业自定义安全属性标签,根据标签建立相应存储路径和用户角色,保证企业间和企业内部不同部门之间数据的隔离性。同时,以用户角色和访问有效时长等安全属性组合作为数据访问的条件,保证数据访问的共享性和安全性。

3.2.1 角色定义与建立

1.企业自定义安全属性标签。企业在以唯一的租户名注册成为平台用户之后,企业租户可以根据自己企业的自身情况,从平台提供的企业组织标签中挑选合适的标签,可选的标签有:中心,部门,项目组。其中,部门可下设子部门,项目组和下设子项目组。

2.层次化建立工作空间和角色标签。平台将在用户提交其企业组织结构之后,自动为企业创建存储工作空间以及要求企业提供各个工作空间负责人。由于企业组织结构具有层次化的特点,因此每个角色都有特定的标签作为标记。例如:某个用户属于某个企业的某个中心下某个部门的某个项目组下,则该用户的角色标签中就包括了企业名称,中心名称,部门名称以及项目组的名称,而该用户有权限能访问的工作空间也随之确定,即该企业某中心下某部门的某项目组所有的工作空间。

3.2.2 角色与用户权限的对应关系

本文定义的角色概念是脱离于用户和用户组的一个逻辑上的概念,是具有某一特征的用户的集合,而这个特征则可以用定义的安全属性标签来进行描述。在平台的访问控制策略中,用户大致被分为如下几种角色:

系统管理员:该角色拥有管理整个系统所有租户的权限,可以根据企业需求为企业各级工作空间设定工作空间管理员。但是该角色无权查看租户的数据信息,也不可以改变自己的角色。

工作空间管理员:该角色由系统管理员根据企业用户的需求而指定,在该工作空间内拥有最高权限。可以在其所管辖的工作空间下添加用户,并为用户赋予权限;可以查看该工作空间内所有用户的权限,并对该空间内用户的权限进行修改。

普通用户:该角色是由工作空间管理员加入到工作空间内的用户。可以查询自己在该工作空间内的权限,但无法修改自己的访问权限。

与每个角色对应一种固定权限的划分不同,本文提出了一种角色与权限相分离,但又有一定映射关系的访问控制策略。一方面,角色可以根据标签确定,则如果需要共享数据,那么只需要临时增加角色的标签,并在访问控制时检查时间戳和时效性标记即可,避免了角色与权限的一一对应关系,数据分享变得简单而易于实现;另一方面,角色和权限在宏观上保持着一定的联系,可以保证企业间,企业内部各个部门和各个组织层级之间数据的适度隔离。

3.2.3 访问控制流程

用户访问存储平台时的访问控制流程如图2所示。

第一步,客户端需向平台发送用户名username,密码passwd,访问路径path_0(因有可能是加密后的路径,故为path_0)以及对访问路径进行的操作operation,之后Eole平台先验证其Eole用户的合法性,如果不合法,则直接拒绝访问;若合法,则返回用户相对KDC的principal。

第二步,Eole平台向KDC发送用户的principal和密码(与Eole平台密码相一致),验证该用户的合法性,并获得用户的票据,临时存储在本地,并设置好票据的访问权限。

第三步,Eole平台持票据向HDFS发起访问,需提供票据,解密后的路径以及对路径进行的操作,访问成功则返回数据,否则返回访问失败的信息。此处因返回的数据有可能是加密过的,所以要在Eole平台上进行解密并将数据返回给客户端。

4 系统测试

平台实验环境为14台装载了Linux系统的计算机上面搭建的Hadoop集群,Hadoop的版本为2.4.5,机器硬件环境为:内存4G,CPU主频3.OMHz,3TB硬盘。为了测试访问控制策略对HDFS性能的影响,测试过程中数据集均没有加密。

4.1 安全性测试

在存储平台上设置了两个企业:EBUPT和NEOTEL。二者定义的安全标签如表1所示,NEOTEL和EBUPT虽然有相同的部门标签和项目组标签,但由于企业标签的不同,数据存储的时候会映射到不同的路径上。我们设置Jack为NEOTEL销售部华东组组长,Marry为EBUPT销售部华东组组长,Apple是NEOTEL开发部Eole项目组组长,Bill是NEOTEL开发部经理。

4.1.1 企业间数据隔离测试

测试结果表明:Jack不能访问属于不同企业的用户Marry的文件,反之亦然。在Jack使用存储平台时,EBUPT的文件路径对其是不可见的,因此,该访问控制策略保证了企业之间数据的强隔离性,用户的每一次访问都会进行严格的权限验证,严格限制了一个企业用户对其他企业用户进行数据访问的企图。

4.1.2 企业内部门间隔离测试

测试结果表明:Apple不能访问属于不同部门的用户Jack的文件,反之亦然。Apple无法看到Jack组的文件路径,当两个部门之间需要共享材料时,可以临时将用户Apple加入Jack组中某文件路径的访问列表中,然后设定有效时长,过期后则Apple权限失效,并从该文件路径的访问列表中删除用户Apple。由此可见,该访问控制策略对企业内部数据进行了灵活的数据隔离,满足了企业各角色之间各自的访问控制安全需求。

4.1.3 企业内各层级之间隔离测试

测试结果表明:只有文件在NEOTEL的开发部路径下时,Bill才可以对其进行读写操作。而作为开发部Eole组的文件路径虽然在开发部路径下,Bill对Eole组文件路径下的文件仅具有读权限。Apple作为开发部Eole组组长,拥有对Eole组文件路径下所有数据的读写权限,但对开发部其他部门的文件无读权限。由此可见,该访问控制策略对企业内部各层级之间的数据进行了一定程度的数据隔离,从垂直方向上满足了企业各角色之间各自的访问控制安全需求。

4.2 性能测试

在存储平台上,选取不同规模的几个数据集,进行了两组测试。一组测试直接在HDFS集群上进行数据操作,而另一组测试则在数据存储平台上记性数据操作,测试方式为进行多组试验后取平均值,结果如图3所示。

从图3中可知,在数据量较低时,数据存储平台的效率确实不如HDFS集群,但是差别很小(10s以内),这个时间主要消耗在数据传送和用户权限验证上,且这个时间不会随着数据量的增大而变化,因此在数据量较大时,两者的运行效率几乎一样。然而由于我们的实验条件所限,并没有对更大规模的数据进行测试,但由理论分析可知,影响效率的因素与数据量大小是无关的。由此可以证明,该访问控制策略对数据存储平台性能的影响是满足需求的。

5 结论

基于Kerberos的多租户访问控制策略将提升云存储平台的安全性,简化HDFS权限管理的复杂度,提高云存储平台权限管理的交互性能。该策略充分利用了HDFS和Kerberos安全验证的特点,尽量轻量化加于HDFS上的权限验证工作。经过测试,证明本文提出的访问控制策略既保证了数据操作的高效率,也保证了数据的安全访问。然而由于测试条件有限,没有对P级数据进行进一步的测试,仅从理论上证明了可行性。