一、什么是Apache Ranger

Apache Ranger来源于2013年成立于美国加利福尼亚的XA Secure公司,它是一个Hadoop安全相关的开源组件。在2014年,Hortonworks收购了XA Secure公司,将其贡献给了Apache软件基金会,目前是Apache的顶级开源项目。

二、 Apache Ranger的特点

Apache Ranger是基于访问策略的权限控制模型,通过对库表配置不同的访问策略,再赋权给用户,达到数据隔离的目的。
​ Apache Ranger提供了基于行列级别的权限控制,粒度更细,同时在数据查询中,可以对行级数据做脱敏和Masking操作。
​ Apache Ranger目前集成了Hadoop生态中众多不同的系统,目前已经覆盖了Hive、HDFS、Yarn、HBase、Kafka、Kudu、Solr等17类。
Apache Ranger支持审计日志,可以记录各种操作的审计日志,提供统一的查询接口和界面,但目前审计日志只支持存放在Solr中。

三、Apache Ranger架构

 Apache Ranger属于C/S架构。Ranger-Admin属于Server端,用来提供授权策略的管理服务,可以通过Web UI对用户、角色、组、授权策略进行变更,这些管理能力也会通过REST API对外暴露。各种Plugins插件就是Client端,通过REST API与Ranger-Admin进行交互,定时拉取最新的权限策略并更新到plugin的缓存仓储中。每个插件实现了对应系统的访问控制相关的扩展接口,在特定的逻辑处理和模型转换之后,最终会对plugin通用common层的服务进行调用,包括权限管理、用户管理、角色管理、组管理、鉴权等。其中鉴权时,会对缓存仓储中的策略进行匹配。

在这里插入图片描述
目前Ranger-admin可以将权限策略存储在Mysql,Oracle,postgres等。
在这里插入图片描述
支持多种存储系统,各种的存储系统的plugins属于可插拔的插件,灵活部署,方便管理 。
在这里插入图片描述

四、Apache Ranger与Hive集成

Apache Ranger是一个可插拔式的权限控制组件,用户需要对那些存储系统做权限管理时,只需要配置安装对应的plugin即可,但Ranger-admin作为Service端,是必须安装的。本次以Apache Ranger权限控制Hive为例,如下图所示:

4.1 安装目录

在这里插入图片描述
Ranger-admin:是service端,负责与plugin和权限策略存储系统交互,必须安装;
Ranger-hive-plugin :是Client端,具体实现hive的连接与特定逻辑处理(包括获取库名,表名,同步策略等);
Ranger-usersync:同步Ranger的外部用户(linux用户)。

4.2 安装成功后的WEB UI

安装成功之后Ranger 的WEB UI界面,同时绑定hive数据源(目前只支持JDBC的连接方式)。
在这里插入图片描述

4.3 策略页面

1:策略与用户的配置信息;2:数据加密配置;3:数据行级过滤;4:添加新策略;
在这里插入图片描述

4.4 策略配置具体页

1:策略名,不重复即可;2:数据库名;3:表名;4:列名;5:用户;6:权限。
下图的具体含义为: 用户user0001和test0003对hive中test1库的t_user_test01表中的user_name和user_code字段有查询权限,策略名叫Policy_test1;
在这里插入图片描述
下图的具体含义为:用户test0004只能对hive中test1库中的t_user表中user_code ='2222’的用户有查询权限。
在这里插入图片描述

4.5用户,组,角色添加

在这里插入图片描述

五、Apache Sentry和Apache Ranger对比

5.1权限控制方式及粒度的差异

Apache Sentry 主要是基于角色来控制访问权限的,可以达到行列级别(但通过测试来看,好像只支
持列级别);
Apache Ranger是基于策略来控制访问权限,可以达到行列级别,同时可以将策略赋权给用户,用户
组和角色。

5.2 支持的组件数量差异

Apache Sentry 目前能够支持5-7种系统,但 Apache Ranger能够支持十几种系统。

5.3 可视化页面差异

Apache Sentry 的可视化权限管理界面需要基于Hue协调框架,Apache Ranger提供自身携带的权
限管理WEB UI界面。

5.4 审计差异

Apache Sentry 不支持审计操作,Apache Ranger 支持审计,可以将审计日志存放至Solr中。

5.5 二次开发差异

Apache Ranger提供了二次开发接口,集成额外的系统,只需要为其实现相应的plugin即可。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐