一种云环境下分布式存储的访问控制方法与流程

文档序号:13212928阅读:297来源:国知局
一种云环境下分布式存储的访问控制方法与流程

本发明涉及一种云环境下分布式存储的访问控制方法,属于云环境下安全访问的技术领域。



背景技术:

云计算(cloudcomputing)是基于互联网的相关服务增加、使用和交付模式,它是在并行处理、分布式计算、网格计算等技术基础上逐步融合发展起来的网络计算技术。云计算最初于2008年由谷歌正式提出。对云计算的定义说法多样,美国国家标准与技术研究院(nist)定义:云计算是一种为随时随地、方便、请求即响应(on-demand)地访问可配置计算的共享资源池(如:网络、服务、存储、应用)的一种计算模式,这种模式可以减少用户在快速获得和释放资源时与服务提供者的交互和管理开销。在云计算模式下,用户终端设备将会变得非常简单,因为用户只需要发送请求便可以由云服务提供商提供“按需收费”的计算资源、存储空间和其他的应用软件等。云计算已经广泛应用到各个领域,包括:云物联、云安全、云存储、移动通信等。

分布式存储是将大量的普通的pc服务器通过互联网互联,对外作为一个整体提供服务。当前云计算、大数据环境下,分布式存储系统以其扩展性好、成本低、性能高、易用性等特点得到了大规模的应用。分布式文件系统就是部署在分布式存储资源上的架构。分布式文件系统(distributedfilesystem,dfs)主要指将分布式的思想应用到文件存储上,这里,所有资源都以文件的形式存放在一些具体的物理机器的存储设备上,而这些物理机器或许是物理位置不同的物理设备。同时,这种分布式的存储机制和流程,对于用户而言是透明的。常见的分布式文件系统包括:lustre、hdfs、fastdfs、mogilefs、googlefs、moosefs、ceph以及gluster等。

随着大数据环境下海量数据安全存储的需求,研究基于分布式架构,重点突破分布式架构下的访问控制、身份认证、数据隔离存储等关键技术,研制云计算及大数据环境下具有高可用性、高安全性、高稳定性和高性能的存储系统,显得异常重要。一方面,高可用性的分布式存储系统满足云计算、大数据环境下的有效存储需求;另一方面,实现海量数据按用户、应用、安全等级别进行保护的功能,防止数据被非法访问。

hadoop的分布式文件系统中实现了一种与posix系统类似的文件和目录的权限模型。即每个文件和目录都有一个所有者(owner)和一个组(group)。文件或者目录对所有者、同组的其他用户以及所有其他组的用户分别有着不同的权限,从而实现对不同用户访问hdfs目录的权限控制。但是,该访问控制方法单一,只是针对一个传统文件和目录的权限设置;单纯地依靠这一种访问控制,并不能很好地满足安全需求。



技术实现要素:

针对现有技术的不足,本发明提供一种云环境下分布式存储的访问控制方法。

发明概述:

本发明的核心是以hadoop集群的hdfs分布式文件系统为基础的云存储,在该基本云存储系统基础上,增加安全访问控制功能。通过ranger突破云存储系统中的访问控制技术,构建基于角色的细粒度的访问控制授权体系,使该云存储系统可以可靠地支持多用户的不同级别或类型的信息进行有效隔离与完整性保护,实现云端数据隔离。通过kerberos突破云存储系统中具体数据节点的访问控制,解决hadoop集群内部、client与管理节点、管理节点与数据节点及数据节点间的访问控制问题。

术语说明:

1、基于角色访问控制,所谓访问控制是指对用户的身份认证后,需要按用户的身份及用户归属的某定义组来限制用户对某些资源信息的访问,或者限制用户控制功能的使用。在基于角色的访问控制(rbac)中,权限与角色相关联,用户根据它的角色而获得相应的权限,同时用户也可以依据新的需求和系统的合并而获得新的权限。

2、ranger,是一种实现、监控并管理hadoop平台综合数据安全的集中式框架,它提供了一个集中式的管理平台,通过制定策略(policies)实现对不同的用户赋予对特定路径的访问权限。

3、kerberos,是一种安全的网络认证协议,它采用通过对称加密算法生成的、时间敏感的票据,实现客户端和服务器端不需要在网络上传输密码就可以进行认证,从而提供了一种新的安全认证和访问控制的方法。

4、kdc,密钥分发中心(keydistributioncenter)。

5、票据授权票据,(ticketgrantticket,tgt)在kerberos认证系统中,向用户发放tgt,该tgt用于获取服务票据。

本发明的技术方案为:

一种云环境下分布式存储的访问控制方法,基于ranger框架和kerberos实现;ranger框架包括rangeradmin组件、rangerplugin组件和rangerusersync组件;kerberos的组件包括kdc和协助工具ks_tool;具体的功能实现步骤如下:

a、基于用户的访问控制

a1、部署hadoop集群;hadoop集群包括至少一个master节点和多个slave节点;hadoop集群实现对hdfs的上传、下载与访问;基于ranger的访问控制的实现,为云存储的安全增加了第一道“认证门槛”,在hadoop集群内部,包括client与管理节点、管理节点与数据节点、数据节点之间的身份认证问题,则由kerberos实现。

分布式存储访问控制的实现,主要包含两个方面:一方面是用户对hdfs存储的访问权限的控制;另一方面是hadoop集群内部各个节点之间的身份认证与访问控制。

a2、部署ranger框架的组件;其中rangeradmin组件部署在slave节点上,rangerplugin组件和usersync组件部署在master节点上;将系统用户更新到rangeradmin组件中,并以mysql数据库作为ranger框架的策略与审计日志的存储载体;其中,将系统用户更新到admin中的实现,根据具体需求具体实现。

a3、在rangeradmin组件中,对hdfs定义local_hdfs服务;rangeradmin组件为local_hdfs服务定制访问策略,实现对策略访问路径、策略发生作用的user/group及user/group应被赋予的权限的设置;

a4、local_hdfs服务的访问策略通过rangerplugin组件更新到hdfs中,实现系统用户对策略访问路径的特定访问权限;同时,rangerplugin组件将系统用户对hdfs的访问日志同步到rangeradmin组件中,形成审计日志,用于检测用户访问的足迹;

b、hadoop集群内部认证控制

b1、当系统用户访问datanode或namenode服务器时,首先向as发出请求,表明自己的身份,请求tgt;所述请求包括系统用户的name/id、系统用户ip地址和tgt的有效时间;其中,tgt是ticketgrantticket,票证授权票证;

hadoop集群主要包括两种服务器:namenode所在的服务器(一般为一个)和datanode所在的服务器(一般为多个);分布式存储时,数据具体存储在datanode中,不过,client访问该存储目录时,需要通过namenode提供相关datanode信息才能访问datanode。

b2、as收到请求后,首先去mysql数据库中验证该系统用户是否存在;如果系统用户存在,则返回两部分信息给系统用户:一部分信息为tgt,该信息通过kdc自身的密码进行加密;另一部分信息为经系统用户的密钥加密的信息,包括tgs的name/id、时间戳、tgt的生命周期和tgssessionkey;此时,如果用户发出请求并得到验证,则使用自己的密钥解密第二部分信息,获得tgssessionkey;否则认证失败;tgs是ticketgrantserver,票证授权服务器;

关于tgt的有效时间和时间戳,“tgt的有效时间”,是用户在请求时,告诉as,自己需要什么时间段内使用tgt;“时间戳”,是发放的tgt里包含的具体使用时间;

b3、系统用户向tgs发送请求,请求获得st;请求包括,使用tgssessionkey加密的认证器、明文传输的特定服务的请求和tgt;st即serviceticket,服务票据;

b4、tgs对请求进行验证;验证包括,对比tgt中的用户名和认证器中的用户名;比较时间戳,检查时间戳是否过期,检查ip地址是否一致;检查认证器是否已经在tgs缓存中;验证通过后,向系统用户发送回答信息;所述回答信息包括,加密的服务票据st、通过tgssessionkey加密的信息;

b5、用户收到回答信息后,通过tgssessionkey解密,获得对应服务的servicesessionkey及加密的st;至此系统用户获得请求服务的服务票据,并以服务票据为依据向指定的服务器发送访问请求;

b6、服务器对st进行解密后验证,检测系统用户的用户名、系统用户ip地址和时间戳;如果验证通过,则允许该系统用户的访问。

根据本发明优选的,使用tgssessionkey加密的认证器,包括系统用户的name/id和时间戳;明文传输的特定服务的请求为http服务。

根据本发明优选的,所述rangeradmin组件是安全管理的核心接口,通过集中式的管理控制平台,实现用户的可视化操作,并将可视化操作作用到hdfs中,最终实现访问控制;所述可视化操作包括创建和更新用户/组、定义服务和访问策略、查看访问日志;

所述rangerplugin组件是一个轻量级的java程序,嵌入到hdfs组件中进行工作;rangerplugin组件一方面负责将hdfs与rangeradmin组件联系起来;另一方面,将rangeradmin组件中定义的访问策略加载到hdfs所在的主机上,并将系统用户的访问日志上传到rangeradmin组件中用于审计;

所述rangerusersync组件是ranger提供的系统用户同步功能,将unix系统、ldap中的现有系统用户和系统用户组加载到rangeradmin组件中,作为访问hdfs的用户。

根据本发明优选的,所述kdc提供认证服务和票据授权服务;其中认证服务负责对系统用户和目标服务进行认证,票据授权服务负责生成具有时效性的、密码消息组成的票据;系统用户通过票据向目标服务进行认证。认证服务(authenticationservice,as),票据授权服务(tickergrantingservice,tgs)。

协助工具ks_tool是kdc的工具类,用于协助使用kdc;协助工具ks_tool包括klist,klist用于列出客户端本地凭据缓存中的kerberos票据。

根据本发明优选的,所述系统用户为master的系统用户或者slave的系统用户;master的系统用户为unix系统用户;所述步骤a3)中的策略访问路径为hdfs的文件路径。

本发明的有益效果为:

1.本发明所述云环境下分布式存储的访问控制方法,在hadoop原有的权限基础上,增加ranger这一基于策略的访问权限模型,将ranger与kerberos相结合,对用户的访问控制的同时实现了hadoop内部各个组件之间的访问控制。

2.本发明所述云环境下分布式存储的访问控制方法,充分利用ranger提供的集中式用户权限管理、策略管理、日志管理的优点,使得访问控制管理更加高效。

附图说明

图1为本发明所述云环境下分布式存储的访问控制方法实现的整体架构图;

图2为基于ranger技术实现访问控制架构图;

图3为基于kerberos技术实现访问控制架构图。

具体实施方式

下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。

实施例1

如图1-3所示。

一种云环境下分布式存储的访问控制方法,基于ranger框架和kerberos实现;ranger框架包括rangeradmin组件、rangerplugin组件和rangerusersync组件;kerberos的组件包括kdc和协助工具ks_tool;具体的功能实现步骤如下:

a、基于用户的访问控制

a1、部署hadoop集群;hadoop集群包括至少一个master节点和3个slave节点;hadoop集群实现对hdfs的上传、下载与访问;基于ranger的访问控制的实现,为云存储的安全增加了第一道“认证门槛”,在hadoop集群内部,包括client与管理节点、管理节点与数据节点、数据节点之间的身份认证问题,则由kerberos实现。

分布式存储访问控制的实现,主要包含两个方面:一方面是用户对hdfs存储的访问权限的控制;另一方面是hadoop集群内部各个节点之间的身份认证与访问控制。

a2、部署ranger框架的组件;其中rangeradmin组件部署在slave节点上,rangerplugin组件和usersync组件部署在master节点上;将系统用户更新到rangeradmin组件中,并以mysql数据库作为ranger框架的策略与审计日志的存储载体;其中,将系统用户更新到admin中的实现,根据具体需求具体实现。

a3、在rangeradmin组件中,对hdfs定义local_hdfs服务;rangeradmin组件为local_hdfs服务定制访问策略,实现对策略访问路径、策略发生作用的user/group及user/group应被赋予的权限的设置;

a4、local_hdfs服务的访问策略通过rangerplugin组件更新到hdfs中,实现系统用户对策略访问路径的特定访问权限;同时,rangerplugin组件将系统用户对hdfs的访问日志同步到rangeradmin组件中,形成审计日志,用于检测用户访问的足迹;

b、hadoop集群内部认证控制

b1、当系统用户访问datanode或namenode服务器时,首先向as发出请求,表明自己的身份,请求tgt;所述请求包括系统用户的name/id、系统用户ip地址和tgt的有效时间;其中,tgt是ticketgrantticket,票证授权票证;

b2、as收到请求后,首先去mysql数据库中验证该系统用户是否存在;如果系统用户存在,则返回两部分信息给系统用户:一部分信息为tgt,该信息通过kdc自身的密码进行加密;另一部分信息为经系统用户的密钥加密的信息,包括tgs的name/id、时间戳、tgt的生命周期和tgssessionkey;此时,如果用户发出请求并得到验证,则使用自己的密钥解密第二部分信息,获得tgssessionkey;否则认证失败;tgs是ticketgrantserver,票证授权服务器;

关于tgt的有效时间和时间戳,“tgt的有效时间”,是用户在请求时,告诉as,自己需要什么时间段内使用tgt;“时间戳”,是发放的tgt里包含的具体使用时间;

b3、系统用户向tgs发送请求,请求获得st;请求包括,使用tgssessionkey加密的认证器、明文传输的特定服务的请求和tgt;st即serviceticket,服务票据;

b4、tgs对请求进行验证;验证包括,对比tgt中的用户名和认证器中的用户名;比较时间戳,检查时间戳是否过期,检查ip地址是否一致;检查认证器是否已经在tgs缓存中;验证通过后,向系统用户发送回答信息;所述回答信息包括,加密的服务票据st、通过tgssessionkey加密的信息;

b5、用户收到回答信息后,通过tgssessionkey解密,获得对应服务的servicesessionkey及加密的st;至此系统用户获得请求服务的服务票据,并以服务票据为依据向指定的服务器发送访问请求;

b6、服务器对st进行解密后验证,检测系统用户的用户名、系统用户ip地址和时间戳;如果验证通过,则允许该系统用户的访问。

具体的方法流程如图1所示,图中,

1)用户与kerberos进行交互,获得票据授权票据(tgt),进而获得服务票据(st),从而获得访问namenode的权限。

2)用户与ranger交互,由ranger检测是否该用户具有访问hdfs的权限,ranger将会在数据库中查找该用户的权限策略;

3)用户通过认证后,连接到namenode,请求访问hdfs中存储的数据块;

4)namenode经过kerberos服务认证之后,将具体操作分布到各个datanode节点。

实施例2

如实施例1所述的云环境下分布式存储的访问控制方法,所不同的是,使用tgssessionkey加密的认证器,包括系统用户的name/id和时间戳;明文传输的特定服务的请求为http服务。

实施例3

如实施例1所述的云环境下分布式存储的访问控制方法,所不同的是,所述rangeradmin组件是安全管理的核心接口,通过集中式的管理控制平台,实现用户的可视化操作,并将可视化操作作用到hdfs中,最终实现访问控制;所述可视化操作包括创建和更新用户/组、定义服务和访问策略、查看访问日志;

所述rangerplugin组件是一个轻量级的java程序,嵌入到hdfs组件中进行工作;rangerplugin组件一方面负责将hdfs与rangeradmin组件联系起来;另一方面,将rangeradmin组件中定义的访问策略加载到hdfs所在的主机上,并将系统用户的访问日志上传到rangeradmin组件中用于审计;

所述rangerusersync组件是ranger提供的系统用户同步功能,将unix系统、ldap中的现有系统用户和系统用户组加载到rangeradmin组件中,作为访问hdfs的用户。

实施例4

如实施例1所述的云环境下分布式存储的访问控制方法,所不同的是,所述kdc提供认证服务和票据授权服务;其中认证服务负责对系统用户和目标服务进行认证,票据授权服务负责生成具有时效性的、密码消息组成的票据;系统用户通过票据向目标服务进行认证。认证服务(authenticationservice,as),票据授权服务(tickergrantingservice,tgs)。

协助工具ks_tool是kdc的工具类,用于协助使用kdc;协助工具ks_tool包括klist,klist用于列出客户端本地凭据缓存中的kerberos票据。

实施例5

如实施例1所述的云环境下分布式存储的访问控制方法,所不同的是,所述系统用户为master的系统用户或者slave的系统用户;master的系统用户为unix系统用户;所述步骤a3)中的策略访问路径为hdfs的文件路径。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1