Ranger部署

Ranger部署,第1张

Part 1.下载编译源码

note:在linux下2.2.0版本编译报错,一直解决不了,所以就直接下载了2.0.0的包,一次就编译成功了

  1. 首先要确保已经安装了python2(好像必须是这个版本的),maven(配置为阿里的源)

  2. 下载源码,没有从github下载,下面是某高校的镜像链接,速度很快

    wget https://mirrors.ustc.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
    

3.将上面的源码包解压

tar -zxvf apache-ranger-2.0.0.tar.gz 

4.开始编译,过程大概十几分钟

cd /opt/soft/apache-ranger-2.0.0
mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true

如果编译完成即可在/usr/local/soft/apache-ranger-2.0.0/target 目录中看到如下文件

如果编译失败,可下载编译完成的下载链接
https://download.csdn.net/download/wforever5620/85094577

Part 2.安装RangerAdmin

2.1 创建mysql数据库环境

(1)登录MySQL
mysql -uroot -p*
(2)在MySQL数据库中创建Ranger存储数据的数据库
mysql> create database ranger;
(3)更改mysql密码策略,为了可以采用比较简单的密码
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
(4)创建用户
mysql> grant all privileges on ranger.* to ranger@'%'  identified by 'ranger';

create database ranger;
set global validate_password_length=4;
set global validate_password_policy=0;
SET GLOBAL log_bin_trust_function_creators = 1;

注:
mysql5.7版本默认没有开启validate_password,可能报错如下
mysql> set global validate_password_policy=0;
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'

解决方法:
sudo vim /etc/my.cnf
添加两行内容:
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
然后:systemctl restart mysqld

plugin-load-add=validate_password.so:插件的加载方法,每次服务器启动时都必须给出该选项;
validate-password=FORCE_PLUS_PERMANENT:validate-password在服务器启动时使用该选项来控制插件的激活。


2.2 安装

(1)创建一个ranger安装目录

mkdir /usr/local/soft/ranger

(2) 解压编译包到安装目录

tar -zxvf /usr/local/soft/apache-ranger-2.0.0/target/ranger-2.0.0-admin.tar.gz -C /usr/local/soft/ranger/

(3) 进入解压好的目录中,编辑install.prooerties,修改部分配置,(注意注释部分的 *** 作)

#mysql驱动,要将jar包复制到相应的目录中
SQL_CONNECTOR_JAR=/usr/local/soft/ranger/mysql-connector-java-5.1.48.jar

#mysql的主机名和root用户的用户名密码
db_root_user=root
db_root_password=123456
db_host=master

#ranger需要的数据库名和用户信息,和2.2.1创建的信息要一一对应
db_name=ranger
db_user=ranger
db_password=ranger

#Ranger各组件的admin用户密码
rangerAdmin_password=ranger123
rangerTagsync_password=ranger123
rangerUsersync_password=ranger123
keyadmin_password=ranger123

#ranger存储审计日志的路径,默认为solr,这里为了方便暂不设置
audit_store=

#策略管理器的url,rangeradmin安装在哪台机器,主机名就为对应的主机名
policymgr_external_url=http://master:6080

#启动ranger admin进程的linux用户信息,需要在linux中创建一个ranger用户,设置相应的密码
unix_user=ranger
unix_user_pwd=ranger
unix_group=ranger

(4)执行setup.sh安装脚本

[root@master ranger-2.0.0-admin]# ./setup.sh

等待完成后如果输出如下内容,则安装成功:

[I] Ranger all admins default password change request processed successfully..
Installation of Ranger PolicyManager Web Application is completed.

如果安装报错如下:

2022-04-06 10:25:30,661  [E] ranger_core_db_mysql.sql file import failed!
2022-04-06 10:25:30,662  [I] Unable to create DB schema, Please drop the database and try again
...
2022-04-06 10:25:31,158  [E] CORE_DB_SCHEMA import failed!

解决方法:

1、先将mysql中创建按的ranger库删除,再重新建库设置权限
2、在mysql中执行
SET GLOBAL log_bin_trust_function_creators = 1;
3、重新执行./setup.sh

(5)如果安装完成后/usr/local/soft/ranger/ranger-2.0.0-admin/conf目录没有自动设置软连接,执行如下脚本

[root@master ranger-2.0.0-admin]# ./set_globals.sh

(6)修改/usr/local/soft/ranger/ranger-2.0.0-admin/conf/ranger-admin-site.xml配置文件中的以下属性。


<property>
    <name>ranger.jpa.jdbc.passwordname>
    <value>rangervalue>
    <description />
property>

<property>
    <name>ranger.service.hostname>
    <value>mastervalue>
property>

(7)以ranger用户身份启动ranger-admin

sudo -i -u ranger ranger-admin start

Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid 22039 has started.

查看进程
jps

1195 EmbeddedServer

ranger-admin在安装时已经配设置为开机自启动,因此之后无需再手动启动!

(8)访问Ranger的WebUI,地址为:http://master:6080

用户:admin

密码: ranger123

(9)停止ranger-admin

sudo -i -u ranger ranger-admin stop
Part 3.安装AngerUserAsync

RangerUsersync作为Ranger提供的一个管理模块,可以将Linux机器上的用户和组信息同步到RangerAdmin的数据库中进行管理。


(1) 解压到安装目录

tar -zxvf /usr/local/soft/apache-ranger-2.0.0/target/ranger-2.0.0-usersync.tar.gz -C /usr/local/soft/ranger/

(2) 修改配置文件install.properties内容,如下:

#rangeradmin的url
POLICY_MGR_URL =http://master:6080

#同步间隔时间,单位(分钟)
SYNC_INTERVAL = 1

#运行此进程的linux用户
unix_user=ranger
unix_group=ranger

#rangerUserSync用户的密码,参考rangeradmin中install.properties的配置
rangerUsersync_password=ranger123

(3) 执行安装

./setup.sh

出现以下提示安装成功:

ranger.usersync.policymgr.password has been successfully created.
Provider jceks://file/etc/ranger/usersync/conf/rangerusersync.jceks was updated.
[I] Successfully updated password of rangerusersync user

(4) 修改conf/ranger-ugsync-site.xml文件中内容


                ranger.usersync.enabled
                true

(5)启动RangerUserSync

先在Ranger Admin的WebUI中查看用户信息如下

Settings -> User

使用ranger用户启动

sudo -i -u ranger ranger-usersync start

Starting Apache Ranger Usersync Service
Apache Ranger Usersync Service with pid 30177 has started.

再次查看用户信息,如果用户数量增加了,则说明安装成功

ranger-usersync服务也是开机自启动的,因此之后不需要手动启动!

Part 4.安装Ranger Hive-plugin

Ranger Hive-plugin是Ranger对hive进行权限管理的插件。


需要注意的是,Ranger Hive-plugin只能对使用jdbc方式访问hive的请求进行权限管理,hive-cli并不受限制。


(1)解压hive-plugin到安装目录

tar -zxvf /usr/local/soft/apache-ranger-2.0.0/target/ranger-2.0.0-hive-plugin.tar.gz -C /usr/local/soft/ranger/

(2)修改配置文件install.properties,如下内容

#策略管理器的url地址
POLICY_MGR_URL=http://master:6080

#组件名称
REPOSITORY_NAME=hivedev

#hive的安装目录,根据实际配置
COMPONENT_INSTALL_DIR_NAME=/usr/local/soft/hive-1.2.1

#hive组件的启动用户,根据实际配置
CUSTOM_USER=hive

#hive组件启动用户所属组,根据实际配置
CUSTOM_GROUP=hadoop

(3)启用Ranger Hive-plugin,在/usr/local/soft/ranger/ranger-2.0.0-hive-plugin下执行以下命令

./enable-hive-plugin.sh

查看$HIVE_HOME/conf目录是否出现以下配置文件,如出现则表示Hive插件启用成功。


hiveserver2-site.xml

ranger-hive-audit.xml

ranger-hive-security.xml

ranger-policymgr-ssl.xml

ranger-security.xml

(4)重启hiveserver2

nohup hive --service hiveserver2 >> /var/logs/hiveserver2 2>&1 &
Part 5.配置相关权限策略

一、对表进行权限配置

(1)登陆ranger-admin的WebUi : http://master:6080

Username:admin

Password:ranger123 (要与install.properties中配置一样)

(2)点击Service Manager下的hive选项中的"+",添加一个Service


按照上述方式配置相关选项,最后点击Add进行保存

点击Add后可能会加载很久,最后提示一个错误。


但回到主页后只要hive选选项中多了一个hivedev配置就成功了。


(3)再hive选项卡点击hivedev进入如下页面,然后点击Add New Policy

实例:

对某个用户配置权限如下,配置用户对test库中student表的所有字段,允许的 *** 作为All,下面排除的 *** 作为update

使用beeline连接数据库

将下面Exclude from Allow Conditions :的配置删除,然后Save配置

再次执行插入语句


二、对列进行脱敏

1、点击Masking选项卡

2、点击Add New New Policy

3、如下图,输入策略名称,要作用的库、表、字段

4、选择用户

5、Access Types选择select

6、Select Masking Option选择Custom自定义,输入表达式concat(substring(name,1,1),'**'),即截取姓名第一个字符,然后拼上两个星号

7、再次查表,如下


三、行过滤

1、点击Row Level Filter选项卡

2、点击Add New New Policy

3、配置策略名,数据库和表

4、Access Types选择select,Row Level Filter中输入表达式score>450,即过滤出分数大于450的

5、点击Add保存

6、再次查询表,如下所示

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/584471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存