APACHE RANGER 调研----1.基础介绍和安装

1. 基本介绍

(1) 目前形势:

        目前已有的流行的统一授权管理的开源框架为Ranger和Sentry。

        前者由hortonworks主推(可以支持hive的列级授权,支持审计Audit)

        后者由Cloudera开发,可能更有后劲。另外Cloudera在酝酿一个安全平台, 目前只能通过视图来控制列权限。

(2) ranger 基础概念:

          user: Ranger自己管理的用户,分为internal和external,前者为Ranger自己的用户,例如admin;后者为linux的用户,在操作系统里新增用户后会同步到Ranger。

          group: Ranger自己管理的用户组,没有内外之分,我们看到用户的组应该是Ranger自动生成的,跟linux的用户组无关。

          Service: 即授权管理服务,每个组件可以设置多个Service。(例如hive hdfs hbase 等, 可以对多个hive 进行)

          Policy: 每个Service中可以有多条Policy,组件不同,Policy授权模型不同  (创建策略的时候需要指定用户或组)

(3)  目前ranger 支持的组件:

          HDFS/HBASE/HIVE/YARN/KNOX/STORM/SOLR/KAFKA 等

(4)  hdfs 和 hive 目前权限走的方式:

        hdfs  先走ranger  认证, 如果失败, 在走hdfs 认证。

        hive  直接走ranger认证, 如果成功, 还需走hdfs 的认证, 所以会有当授权给一个用户 INSERT 权限,但是此用户对此表对应的location 目录没有权限。

(5) ranger 主要结构:

        ranger-admin:提供web server以及Ranger管理

        ranger-usersync:与linux或LDAT同步用户。

        ranger-xxx-plugin为针对各组件的插件。


2.版本选型

        ranger 目前大版本 主要是 0.4, 0.5 , 0.6

        0.4 版本  主要支持的hadoop 生态版本(Hadoop 2.6.0 — Hive 0.14.0  – Hbase 0.99.2)  (2015年2月 最后更新)
        0.5 版本  主要支持的hadoop 生态版本(Hadoop 2.7.0 — Hive 1.2.0  – Hbase 1.1.0)  注意: 不支持hadoop2.6.0 因为INodeAttributeProvider 不存在。(2016年9月)
        0.6 版本  主要支持的hadoop 生态版本(Hadoop 2.7.1 — Hive 2.1.0  – Hbase 1.1.3)  最新

        针对目前数仓情况,0.4 更新时间很久,  选取0.5 中ranger-0.5.3-rc3 版本。

3.编译

         wget   https://github.com/apache/incubator-ranger/archive/ranger-0.5.3-rc3.zip
         unzip  ranger-0.5.3-rc3.zip; cd incubator-ranger-ranger-0.5.3-rc3
         目前数仓用的hive 1.2.1 ,更改 pom.xml   1.2.1
         mvn clean compile package assembly:assembly install -Dmaven.test.skip=true 进行编译
         cd target  就可以看见对应的包了。

4.安装部署

(1)安装Ranger 控制台:Ranger—admin

    tar -zxvf ranger-0.5.3-admin.tar.gz; cd ranger-0.5.3-admin; vim install.properties;

更改配置文件:

SQL_CONNECTOR_JAR=/home/hadoop/hive/lib/mysql-connector-java-5.1.35.jar # mysql 库路径
 
# mysql root 用户
db_root_user=root                                                                                                                                     
db_root_password=xxx                                                                                                                               
db_host=hlg-5p149-wangwenting 
 
# ranger 的db                                                                                                                                                                                                                                                      
db_name=ranger                                                                                                                                        
db_user=root                                                                                                                                          
db_password=xxx
 
# ranger 审计db
audit_db_name=ranger_audit                                                                                                                            
audit_db_user=root                                                                                                                                    
audit_db_password=xxx
 
# ------- UNIX User CONFIG ---------------- 安装的时候会更改ranger-0.5.3-admin 所属用户
unix_user=hadoop
unix_group=hadoop

root 用户执行./setup.sh  此时会在mysql 中创建db ranger 和 ranger_audit
   ranger-admin start   启动服务
   访问  http://host:6080  查看服务知否ok, 通过admin/admin 看是否能够登录
(2) ranger-0.5.3-hdfs-plugin 安装
    tar -zxvf ranger-0.5.3-hdfs-plugin.tar.gz; cd ranger-0.5.3-hdfs-plugin;vim install.properties
   
更改配置文件:
# ranger web 服务地址
POLICY_MGR_URL=http://localhost:6080
 
# mysql jar 包
SQL_CONNECTOR_JAR=/home/hadoop/hive/lib/mysql-connector-java-5.1.35.jar
 
# 服务名
REPOSITORY_NAME=hadoopdev
 
# 统计日志db 信息
XAAUDIT.DB.IS_ENABLED=true                                                                                                                            
XAAUDIT.DB.FLAVOUR=MYSQL                                                                                                                              
XAAUDIT.DB.HOSTNAME=hlg-5p149-wangwenting                                                                                                             
XAAUDIT.DB.DATABASE_NAME=ranger_audit                                                                                                                 
XAAUDIT.DB.USER_NAME=root                                                                                                                             
XAAUDIT.DB.PASSWORD=xxx

root 安装 ./enable-hdfs-plugin.sh

安装的时候要生成一些配置文件和jar包,执行前需要进行对应

实例:. hadoop 配置目录 /home/hadoop/hadoop/etc/hadoop/    hdfs 目录/home/hadoop/hadoop/share/hadoop/hdfs/lib/

             ranger  目录       /home/hadoop/ranger-0.5.3        

                                       /home/haoop/ranger-0.5-3/ranger-0.5.3-admin  

                                       /home/hadoop/ranger-0.5-3/ranger-0.5.3-hdfs-plugin

            此时要做的就是在/home/hadoop/ranger-0.5.3 下创建一个目录hadoop,cd hadoop;

             然后 ln -s  /home/hadoop/hadoop/etc/hadoop/  conf    ;   ln -s /home/hadoop/hadoop/share/hadoop/hdfs/lib/ lib

            并将 /home/hadoop/ranger-0.5-3/ranger-0.5.3-hdfs-plugin/lib/ranger-hdfs-plugin-impl 中的jar 包 拷贝到/home/hadoop/hadoop/share/hadoop/hdfs/lib/

安装结束后:

        会看见多了几个配置文件。

        修改了hdfs-site.xml 如下


        dfs.permissions.enabled
        true
    
    
        dfs.permissions
        true
    
    
        dfs.namenode.inode.attributes.provider.class
        org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer
    

验证是否成功: 

 登录web ;  点击HDFS plugin 添加按钮,添加服务 ; 输入定义的服务名:hadoopdev(在配置参数时设置的,要保持一致;点击 Test Connection 执行成功

APACHE RANGER 调研----1.基础介绍和安装_第1张图片
(3)ranger-0.5.3-hive-plugin 安装

tar -zxvf ranger-0.5.3-hive-plugin.tar.gz; cd ranger-0.5.3-hive-plugin;vim install.properties

安装配置同hdfs-plugin   REPOSITORY_NAME=hivedev 

root 安装 ./enable-hive-plugin.sh  具体设置目录同hdfs ,在/home/hadoop/ranger-0.5.3 下mkdir hive, 设置软连接

安装结束后:会生成对应的ranger 配置文件, 修改hiveserver2-site.xml 文件

如下:


        hive.security.authorization.enabled
        true
    
    
        hive.security.authorization.manager
        org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory
    
    
        hive.security.authenticator.manager
        org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator
    
    
        hive.conf.restricted.list
        hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager
    

如果让客户端也生效, 此时hive.security.authenticator.manager 用默认值。 不然会获取不到用户信息

创建hivedev service

APACHE RANGER 调研----1.基础介绍和安装_第2张图片

添加服务后页面显示

APACHE RANGER 调研----1.基础介绍和安装_第3张图片

(4) 添加hdfs 和hive 策略
APACHE RANGER 调研----1.基础介绍和安装_第4张图片

hdfs 策略配置(首先需要在ranger 里面创建用户组和用户 ---- 此处要和linux 对应,配置后,linux 用户就会对应这些策略)

APACHE RANGER 调研----1.基础介绍和安装_第5张图片


hive 策略配置

APACHE RANGER 调研----1.基础介绍和安装_第6张图片


你可能感兴趣的:(hive)