背景
当前业界主流的大数据平台,除了国外的Cloudera,国内的华为、阿里和星环。更多的用户在使用的还是开源产品,无论是日益严格的监管要求,还是企业切实的管理需求,大数据平台安全管控都迫在眉睫,目前业界流行的大数据权限管理框架有Apache Sentry和Ranger。二者在功能上都可以去管理大数据的权限,但具体细节上有较大的差异。无论是Apache Sentry还是Ranger,从国内客户当前的需求来看都有欠缺的地方,比如:安全合法合规方面,必须满足国内数据安全法,安全监管局对数据安全的要求,对不同安全级别的敏感数据,采取去标识化、匿名化、国密算法加密等方式对数据进行脱敏处理;业务关联方面,保留脱敏后数据的业务关联性和价值意义,需要提供相关敏感类型的唯一仿真脱敏算法;系统安全运维方面,需要满足日常系统资源监控、数据安全服务状态监控、系统运行日志管理;用户体验方面,满足国内大众化UI操作习惯,提供用户友好提示,可实现用户定制化需求;系统对接方面,可提供所需API接口,支持定制化扩展;组件支持方面,资源安全访问控制需要涵盖大部分常用组件。
本文我们将提供对Ranger和Sentry的主要特性的比较来了解为什么Sentry现在已经被弃用并被Ranger替代,进而详细介绍一种兼容性更好,并且符合当前监管及国内用户需求的大数据安全解决方案-HSDM
现有行业解决方案
Sentry概述
Apache Sentry是Hadoop平台上基于角色的授权模块。它为在Hadoop集群(特别是CDH集群)上运行的经过身份验证的用户和应用程序提供访问控制和实施数据特权级别的功能。目前,Sentry已与Apache Hive、Apache Solr、Apache Kafka、Apache Impala和HDFS很好地集成在一起(仅限于通过Sentry HDFS同步由Hive表链接的数据)。
Sentry是基于角色的权限管理,这意味着需要在Sentry中创建Role,这需要在OS级别或AD上映射到Groups,然后再映射到打算访问Hadoop的最终用户上。您可以使用Sentry来限制用户对数据库、表、字段或URI的访问,这可以通过Sentry命令完成,这些命令可以从Impala或Hive界面运行。
Ranger概述
Apache Ranger是一个框架,用于启用、监控和管理整个Hadoop平台的全面数据安全性。Apache Ranger具有以下目标:
1、集中式的安全管理,可在中央UI或使用REST API来管理所有与安全相关的任务;
2、细粒度授权,可使用Hadoop组件/工具执行特定行为或操作,并通过中央管理工具进行管理;
3、跨所有Hadoop组件的标准化授权方法;
4、对不同授权方法的增强支持-基于角色的访问控制、基于属性的访问控制等;
5、在Hadoop的所有组件中集中审核用户访问和管理操作(与安全性相关)。
除了安全授权之外,Apache Ranger还支持用户友好的Web UI,REST API和审计、动态行过滤和动态列掩码等功能,这些功能都是Sentry所不具备的。
如您所见,Apache Ranger支持更多功能并与更多其他Hadoop组件集成。最新发布的Impala3.4也支持通过Ranger进行权限管理。
在用户的很多应用场景中,Sentry对大数据组件的支持度和管控强度都无法很好的满足用户的需求,大部分用户就存在使用Ranger管理整个大数据平台组件的需求。
Sentry到Ranger的权限
Sentry的权限和Ranger的服务策略之间并没有1:1的映射,所有Sentry的权限需要在Ranger的服务策略中转换成他们的等效项。
1、授予角色的Sentry权限,在Ranger中将变成用户组或者角色;
2、授予父对象的Sentry权限也被授予子对象。在Ranger中应该保留应用于子对象的权限。例如,在数据库级别应用的权限也将应用于该数据库内的表;
3、Sentry OWNER权限,在Ranger中对应 OWNER权限;
4、Sentry的OWNER WITH GRANT OPTION权限,在Ranger中对应Delegated Admin的OWNER权限;
5、Sentry权限不会区分表和视图;
6、Sentry的URI权限将使用对象存储位置作为基本位置。
Table. SentryActions to Ranger Actions
HSDM系统概述
HSDM底层是基于Ranger,并根据国家信息安全部门对企业数据统一管理的安全规定,综合各行业用户需求,从而开发出的一套通用的、高效率、高性能、高安全性的大数据平台安全保护软件。
HSDM功能包括大数据服务、数据分类服务、脱敏规则、审计报表、安全例外、策略报告、用户管理、日志管理八大模块,部分模块下包含若干子模块。大数据服务的平台包括常见的大数据平台发行版CDH、HDP、FusionInsight。HSDM通过插件服务的方式实现对Hadoop生态的组件如hive、impala、hbase 、hdfs、kafka等进行资源访问控制,结合用户访问权限策略及动态脱敏策略实现对数据的精细化访问权限控制;数据分类服务是将Atlas的数据分类(Tag)与HSDM的安全策略相结合,可以实现基于分类的、跨组件的权限控制,而无需在每个组件中创建单独的服务和策略,当一个用户的请求涉及到多个应用系统中的多个资源权限时,可以通过只配置这些资源的Tag方便快速的授权;脱敏规则模块提供动态脱敏所需的48种脱敏算法,包括唯一高仿真脱敏算法、Ranger自带脱敏算法、国密算法(包括SM3、SM4)、国际加密算法(例如MD5、SHA等);审计报表包括服务访问、系统操作、系统登录、插件同步、插件状态、用户同步六个子模块;安全例外是基于大数据服务的资源访问策略,开放少部分不纳入安全监管的访问资源;用户管理包括用户、组和权限,其中,权限是对HSDM自身访问权限的控制;日志管理提供完备的系统运行日志。系统内置丰富的脱敏规则算法,满足不同行业客户的数据脱敏需求,并提供强大的日志、报表查询满足相关监管部门的审计需求。系统最大的特点是易用、高效率、安全。
HSDM在访问权限管理上已实现对已适配的大数据平台进行完美融合,系统提供访问权限管理控制开关,用户可通过开启/关闭选择访问权限管理由HSDM或大数据平台进行控制,解决业内普遍存在的双层访问权限控制带来的维护难度,以及访问权限策略迁移带来的风险。
HSDM案例分析
案例背景
某科技公司在大数据底层平台上选用的是社区版CDH6.3.0,由于种种原因无法使用商业版CDP,然而对权限版块又有一定的需求,所以需要一套社区版本下的底层权限解决方案。目前授权版块调研过Sentry和Ranger,发现Sentry无论是组件支持度还是API都无法满足目前的需求,最后决定选择功能更强大的Ranger,但是CDH版本没有集成Ranger,所以需要将Ranger集成到社区版CDH中。
集成方案分析
HSDM的底层基于Ranger,可以将HSDM集成到CDH社区版,同时通过CM来管理HSDM组件,以下是该客户提出的几点关键问题并给予答复:
1、CM集成HSDM的大致原理和方式。
答复:将HSDM系统打包成Parcel包和csd文件,然后通过CM来集成Parcel包,这样可以通过CM来管理HSDM组件。
2、说明HSDM支持集成的Ranger版本,是否需要其他组件依赖等。
答复:目前HSDM有两个版本供集成使用:
(1)HSDM2.0底层基于Ranger2.0,该版本支持Hive2;
(2)HSDM3.0底层基于Ranger2.1,该版本支持Hive2和Hive3;
(3)依赖的组件有Ldap(大数据集群用户管理),Atlas(数据分类Tag管理),如hbase、hdfs、kafka等组件访问权限控制则需要依赖Kerberos的支持。
3、说明是否能在Cloudera Manager界面对HSDM进行运维。
答复:可以在CM上启动和停止HSDM,也可以在CM上配置HSDM相关参数,跳转到HSDM的管理页面进行访问权限管理。
4、说明集成后HSDM支持的组件有哪些,重点说明是否支持impala。
答复:目前已支持hive、impala、hbase、hdfs、kafka,其中Impala需要是3.4版本(比较早的版本不支持Ranger来管理权限)。
(1)hive、hbase、hdfs、kafka适配方案:通过安装插件,并且在CM中配置插件启动参数。
(2)impala适配方案:impala3.4版本已集成ranger插件,通过编译和升级CDH中impala到3.4版本,并且在CM中配置impala插件启动参数,涉及策略服务、策略提供者、appId、插件类配置等。
5、说明集成后原Ranger的UI界面和API接口功能是否会有影响。
答复:原Ranger本身的UI界面用户体验比较差,HSDM已经对界面重新优化并增加了满足国内合法合规的唯一仿真脱敏、国密(SM3、SM4)等算法,以及国际加密算法(MD5、SHA等),也增加了系统运行日志管理、系统资源监控、安全服务状态监控等功能,且原Ranger的API接口仍然保留不变。
成果展示
CM集成HSDM
通过编译提供的Parcel包和csd文件,将HSDM添加到CM中,通过CM进行管理。可以点击HSDM Server web UI快速访问HSDM组件。
HSDM功能拓展
HSDM完全兼容Ranger,简洁清晰的界面及架构,集成国内领先的数据脱敏算法、国密算法、国际加密算法、运维监控、审计策略,能对大数据平台实行脱敏、加密、监控、审计等全方位的安全保护。目前已经支持CDH、HDP、华为FI,其中CDH已支持的组件包括:hive、impala、hbase、hdfs、kafka,其它组件陆续支持。
HADOOP SQL功能包括hive和impala服务配置,hive和impala资源访问权限策略既可以独立,也可以共享。其中,策略包括访问权限、列级动态脱敏、动态行级过滤。
脱敏规则模块提供动态脱敏所需的48种脱敏算法,包括唯一高仿真脱敏算法、Ranger自带脱敏算法、国密算法(包括SM3、SM4)、国际加密算法(例如MD5、SHA等)
日志管理提供完备的系统运行日志。
资源访问权限控制验证
1、动态脱敏策略配置
地址动态脱敏策略配置:hash值
电话号码动态脱敏策略配置:只显示前4位,其他用’x’屏蔽
Impala动态脱敏效果
Hive动态脱敏效果
2.访问权限控制
将访问用户加入黑名单
Impala查询该表时,提示用户权限不足异常
Hive查询该表时,提示用户权限不足异常
总结
现已成功将HSDM集成到Cloudera Manager中,并通过配置模块对其进行管理,同时支持常见大数据组件,通过统一管理控制界面和插件化方式,结合资源权限策略、动态脱敏策略、动态行过滤策略以及数据分类标签,更友好、更精细化地管理大数据组件的用户访问权限,同时还支持满足国内数据安全法的唯一仿真脱敏算法、国密算法等功能,使得国内用户可以合法合规的使用大数据平台成为可能。
参考:
https://cloudera.ericlin.me/2020/01/introduction-to-apache-ranger-part-i/
https://docs.cloudera.com/cdp-private-cloud/latest/upgrade-cdh/topics/rm-sentry-ranger-permissions.html