APP下载

大数据平台安全组件构建研究

2023-05-08吴丽杰窦维江李瑾陶旭东

电脑知识与技术 2023年9期
关键词:大数据平台访问控制

吴丽杰 窦维江 李瑾 陶旭东

关键词: 大数据平台;安全组件;访问控制;Hadoop平台;Ranger组件

0 引言

大数据平台为大数据共享与服务提供数据存储与处理的基础支撑,负责数据存储、处理和访问等的执行。大数据平台安全是大数据安全的基础, 主要包括大数据处理安全、大数据存储安全、基础设施安全和大数据访问控制。早期大数据平台本身安全性主要借助组织层面的网络安全及物理或逻辑隔离来实现,有关用户数据使用权限主要在大数据应用中解决或借助第三方数据加固安全组件等数据中台(中间件)的安全能力来实现用户数据安全,大数据平台只提供了数据脱敏、数据加密等简单的数据安全服务组件[1-2]。

在企业级大数据平台建设中,Hadoop是最成熟的开源大数据平台之一。Hadoop最初也没有考虑到安全性、法规遵从性和风险管理支持,它只为数据提供基于UNIX的POSIX安全性,不包括客户端和服务之间的身份认证和授权。随着Hadoop 平台的不断发展,安全问题也越来越严重,仅2019年就发生了巨大的数据泄露事件,泄露记录超过40亿条[3-4]。

近年来,不同的企业为Apache Hadoop和Hadoop发行版提供了许多安全解决方案。为解决Hadoop集群中数据的安全性问题,安全组件以模块化的方式实现了Hadoop集群的身份认证、授权和审计等相关要求。随着学术界、开源社区和企业投入的大量人力来不断完善Hadoop平台安全解决方案,Hadoop已经在生产中进行了大量部署并提供多种安全组件来保障数据安全[5-6]。文章讨论了大数据平台常用安全组件,给出一种企业常用大数据安全组件构建方式及具体实现路径。

1 大数据平台安全组件介绍

目前业界常用的大数据平台安全组件是ApacheSentry和Apache Ranger,两者都提供了细粒度访问控制和与其他安全工具集成服务,且都需要Kerberos来提供身份认证服务。Kerberos是MIT提供的一种基于客户机-服务器的安全解决方案,是Hadoop中引入的第一个安全机制。Kerberos提供客户端和服务器之间的相互身份认证,此外,它还提供服务器及其从属组件之间的身份认证。

1.1 Apache Sentry

Apache Sentry 是用于Hadoop 的基于角色的细粒度授权安全组件。Sentry 能够控制和执行Hadoop 集群上经过身份认证的用户和应用程序的精确数据级别权限。Sentry 目前可与Apache Hive、Hive Metas⁃tore/HCatalog、Apache Solr、Impala 和HDFS(仅限于Hive 表数据)一起使用。Sentry 旨在成为Hadoop 组件的可插拔授权引擎,可以支持对Hadoop 中各种数据模型的授权。Sentry 的主要组件是Sentry 服务器(Sentry Server) 、数据引擎(Data Engine) 和Sentry 插件(Sentry Plugin) 。Sentry 服务器管理授权元数据;数据引擎加载Sentry插件,所有客户端访问资源的请求都被拦截并路由到Sentry插件进行验证;Sentry插件在数据引擎中运行,它提供了操作存储在Sentry 服务器中的授权元数据的接口,并包括授权策略引擎,Sentry具体架构如图1所示。

1.2 Apache Ranger

Ranger 是Hadoop 平台监控和管理综合数据安全性的组件。Ranger 目前为Apache Hive、HBase、Storm、Knox、Solr、Kafka、YARN等组件中的用户访问提供集中式安全管理、细粒度访问控制和审计。使用Ranger 管理控制台,用户可以轻松管理有关访问特定用户或组的资源(文件、文件夹、数据库、表、列等)的策略,并在Hadoop 中强制执行这些策略。Ranger的主要组件包括管理门户(Ranger Admin Portal) 、插件(Ranger Plugins) 和用户组同步(User Group Sync) 。管理门户是安全管理的中心界面,用户可以创建和更新策略,然后将其存储在策略数据库(Policy DB) 中,每个组件中的插件会定期轮询这些策略;插件是嵌入在每个集群组件的进程中的轻量级Java 程序,当用户请求通过组件时,这些插件会拦截请求并根据安全策略对其进行评估并将日志记录于审计日志系统(RangerAudit Store) ;用户组同步(User Group Sync) 用于从UNIX 或LDAP 或Active Directory 中提取用户和组[6-8]。Ranger具体架构如图2所示。

1.3 Sentry 与Ranger 的比较

Sentry与Ranger主要通过Hadoop中一些服务的可插拔引擎应用不同粒度级别的基本基于角色的访问控制。Ranger将对象权限分配给用户和组,而Sen⁃try将权限分配给角色,这些角色随后将被委派给组及其关联用户。Sentry需要Cloudera Hue来提供图形界面,而Ranger提供了管理控制台,可以在一个地方控制整个Hadoop集群的安全性。Ranger 还支持公共云对象存储、REST API、审计等这类Sentry 所缺少的功能[9]。Sentry与Ranger具体功能比较如表1所示。

2 大数据平台安全组件构建

根据中国信息通信研究院的2021年《大数据平台安全研究报告》,各大数据平台类型中,Cloudera CDH占据39%、HDP占據31%,原生态Apache Hadoop仅占9%[10]。由于HDP 集成了Ranger 组件且采用ApacheAmbari进行部署,Ambari具有支持二次开发且支持Redis、ElasticSearch、Apache Kylin等服务集成的优势,文章采用Apache Ambari、HDP来集成部署Ranger。

2.1 Ranger 工作流程

HBase是Apache基金会顶级项目且基于HDFS进行数据存储。随着HBase 在企业中的突出地位,HBase的安全性越来越受到企业用户的关注并需提供的细粒度访问控制和审计。文章以HBase为例,探讨了Ranger的工作流程。

HBase提供扩展接口(org.apache.hadoop.hbase.pro?tobuf. generated.AccessControlProtos.AccessControlService.Interface) ,Ranger通过实现HBbase 扩展的权限接口(org.apache.ranger.authoriza⁃tion. hbase.RangerAuthorizationCoprocessor) ,进行权限验证。HBase Ranger Plugin在安装后,hbase-site.xml会生成如下配置项:

HBase Plugin嵌入到HMaster和HRegionServer节点中并定期从Ranger Admin轮询策略,根据策略执行访问决策树并存储审计日志。具体工作流程如图3所示。

2.2 Ranger 构建实践

文章利用Ranger分别构建了HDFS、HBase的文件及数据库常用访问控制业务场景。

2.2.1 HDFS 有限的用户访问控制

在HDFS 中启用Ranger Plugin,设置dfs.permis⁃sions.enabled及dfs.namenode.acls.enabled的值为ture。在Ranger 中建立一个名为“hdfs_test”的访问控制策略,只允许chase用户拥有读、写、执行“/hdp”路径下文件的权限并拒绝其他所有用户的访问。Ranger的权限控制是通过类似白名单和黑名单的二元组允许和拒绝组成,不同组件对应的业务资源控制权限也不同,如HDFS提供了FilePath控制权限,如图4所示。

root用户在Shell中执行查看“/hdp”目录结构的命令,如“hdfs dfs -ls /hdp”。根据“hdfs_test”访问控制策略,读“/hdp”目录的命令会拒绝,Ranger 审计如图5所示。

2.2.2 HBase 细粒度访问控制

在HBase中启用Ranger Plugin,在Ranger中建立一个名为“hbase_test”的访问控制策略,只允许ranger用户读“test”表中的f1列族,其他列族不可访问,如图6所示。

ranger 用户在HBase Shell 中执行读“test”表中的f1 列族和f2 列族的命令,如get 'test','rowkey001','f1: col1'、get 'test', 'rowkey001', 'f2: col1'。根据“hbase_test”访问控制策略,读“test”表中的f1列族的命令会通过授权而读f2列族的命令会拒绝。以上命令的Ranger审计如图7所示。审计日志记录了用户访问类型、用户信息、主机信息、访问资源类型及授权结果等详细信息。

3 结束语

Apache Hadoop由于拥有大量社区支持且开源,目前最新版本的安全组件已经较为成熟。文章讨论了Hadoop平台常用安全组件各自的优缺点,并构建了Ranger组件常见业务应用场景。研究表明,由于Ranger支持表级及字段级的访问控制且支持字段级的加密和行级的过滤,比较适合临时授权一些临时用户的访问权限。随着Hadoop平台的不断发展,新的安全组件也会涌现,根据不同业务需求选择不同的组件还需要考虑组件本身的安全性和许可授权问题。Apache、MIT 和BSD 许可限制可能比其他一些许可少,但在将任何软件纳入现有平台之前,仍然需要第三方审查团队进行了彻底的安全扫描和许可授权审查[11]。

大数据平台的安全防护除了需要结合传统安全工具、新开发的工具集,还需监控平台整个生命周期内的安全性。提升大数据平台安全防御能力的同时,还需提升紧急安全事件的响应能力并建立相应的安全管理机制。

猜你喜欢

大数据平台访问控制
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
基于岗位映射的应急组织间跨域访问控制研究