MRS 2.x版本集群安装Ranger 2.0.0

举报
小四三 发表于 2020/10/30 15:11:29 2020/10/30
【摘要】 Apache Ranger提供一个集中式安全管理框架,并解决授权和审计。它可以对整个Hadoop生态中如HDFS、Hive、HBase、Kafka、Storm等进行细粒度的数据访问控制。用户可以利用Ranger提供的前端WebUI控制台通过配置相关策略来控制用户对这些组件的访问权限 。

1      安装前准备

1.1      安装mysql

本文操作系统: CentOS 7.2.1511 x86_64
MySQL 版本: 5.7.13

1.1.1        卸载系统自带的 mariadb-lib

[root@centos-linux ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@centos-linux ~]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

1.1.2        下载 rpm 安装包

去官网找到最新的 rpm 集合包。现在最新的是 mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

复制其下载地址,在服务器下载 (或者本地下载了上传至服务器)

[root@centos-linux ~]# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

然后解

[root@centos-linux ~]# ls
mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
[root@centos-linux ~]# tar xvf mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
mysql-community-test-5.7.13-1.el7.x86_64.rpm
mysql-community-embedded-5.7.13-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.13-1.el7.x86_64.rpm
mysql-community-server-5.7.13-1.el7.x86_64.rpm
mysql-community-client-5.7.13-1.el7.x86_64.rpm
mysql-community-common-5.7.13-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.13-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.13-1.el7.x86_64.rpm
mysql-community-devel-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-5.7.13-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.13-1.el7.x86_64.rpm

1.1.3        安装

依次执行(几个包有依赖关系,所以执行有先后)下面命令安

[root@centos-linux ~]# rpm -ivh mysql-community-common-5.7.13-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-libs-5.7.13-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm

1.1.4        数据库初始化

*nix 系统中,为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始

mysqld --initialize --user=mysql

如果是以 mysql 身份运行,则可以去掉 --user 选项

另外 --initialize 选项默认以安全模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码

这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件

[root@centos-linux ~]# cat /var/log/mysqld.log
2016-07-16T07:56:38.282824Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-07-16T07:56:38.422114Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-07-16T07:56:38.449315Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-07-16T07:56:38.457910Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: d3261dbf-4b2a-11e6-86ef-001c4260563f.
2016-07-16T07:56:38.458976Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-07-16T07:56:38.459524Z 1 [Note] A temporary password is generated for root@localhost: hm9dKgzQdm:W

上图里的最后一行则给出了生成的密码,现在就可以启动数据库了,然后使用上面的密码登陆

[root@centos-linux ~]# systemctl start mysqld
[root@centos-linux ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.13
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

1.1.5        修改 root 密码

该密码被标记为过期了,如果想正常使用还需要修改密

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

同时,如果你设置的密码过于简单也会报错

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


1.2      编译ranger

Ranger下载地址: wget https://downloads.apache.org/ranger/2.0.0/apache-ranger-2.0.0.tar.gz

1.2.1        配置环境

编译需要工具:jdkmavengitpythongcc

1)安装git
yum install -y git
2)下载maven,jdk,并解压到/opt/build_tools目录下。
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
3)配置环境变量
修改/etc/profile/配置文件
export JAVA_HOME=/opt/build_tool/jdk1.8.0_261
export M2_HOME=/opt/build_tool/apache-maven-3.6.3
export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

1.2.2        编译ranger

下载ranger并解压到/opt/ranger目录下。本步骤需要从外网下载依赖包,该编译节点需要绑定EIP,编译时间较长,可以通过切换maven源来调整编译时间。

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


待编译完成后,会在target的目录下看到编好的tar包

                                            

2      安装Ranger

2.1      安装RangerAdmin

将编译好的ranger-2.0.0-admin.tar.gz包拷贝至集群master节点,如master1

2.1.1        解压ranger admin

mkdir /ranger

tar –zxvf ranger-2.0.0-admin.tar.gz –C /ranger

注:文件目录属组为omm:wheel

2.1.2        修改配置文件install.properties

1) 在步骤1中安装的mysql中,新建数据库rangermeta

2) 修改ranger admin中的install.properties

        DB_FLAVOR=MYSQL

        SQL_CONNECTOR_JAR=/ranger/mysql-connector-java-5.1.47.jar jar包需单独下载)

        db_root_user=root

        db_root_password=Huawei@123

        db_host=mysqlIP:3306

        db_name=rangermeta

        db_user=root

        db_password=Huawei@123

        注释掉audit_store=solr这一行 (如果需要审计日志的话,可单独参考资料配置)

注:如果要将ranger元数据对接到RDS的mysql数据库,需要将上述配置地址指定RDS实例地址,
并修改dba_script.py脚本中grant_xa_db_user和create_rangerdb_user方法,将hosts_arr =["%", "localhost"]修改为hosts_arr =["%"]

2.1.3        安装rangerAdmin

1)  export 环境变量

         export  RANGER_ADMIN_CONF=/ranger/ranger-2.0.0-admin

         export  RANGER_ADMIN_HOME=/ranger/ranger-2.0.0-admin

2)  执行 sh /ranger/ranger-2.0.0-admin/setup.sh

3)  启动ranger admin

        sh /ranger/ranger-2.0.0-admin/ews/start-ranger-admin.sh

4) ps –ef | grep ranger 查看ranger admin进程 和http端口6080是否已启动

2.1.4        Web登录验证

在浏览器中输入:http://EIP:6080/    useradmin  password: admin  EIP为rangeradmin安装节点绑定的弹性公网IP

2.2      安装RangerUsersync

将编译好的ranger-2.0.0-usersync.tar.gz包拷贝至集群master节点,如master1

2.2.1        安装RangerUsersync

解压tar –zxvf ranger-2.0.0-usersync.tar.gz –C /ranger

2.2.2        修改install.properties

进入usersync安装目录,修改install.properties,同步MRS Manager上的用户

       POLICY_MGR_URL= http://localhost:6080

        SYNC_SOURCE = ldap

        MIN_UNIX_USER_ID_TO_SYNC = 1

        MIN_UNIX_GROUP_ID_TO_SYNC = 1

        SYNC_INTERVAL = 1

        CRED_KEYSTORE_FILENAME=/ranger/usersync/conf/rangerusersync.jceks

        AUTH_SSL_ENABLED=true

        AUTH_SSL_KEYSTORE_FILE=/ranger/usersync/conf/cert/unixauthservice.jks

        ranger_base_dir = /ranger

        SYNC_LDAP_URL = ldaps://192.168.0.121:21780 (ps –ef | grep ldaps获得)

        SYNC_LDAP_BIND_DN = cn=root,dc=hadoop,dc=com

        SYNC_LDAP_BIND_PASSWORD = LdapChangeMe@123

        SYNC_LDAP_SEARCH_BASE = dc=hadoop,dc=com

        SYNC_LDAP_USER_SEARCH_BASE = ou=Peoples,dc=hadoop,dc=com

        SYNC_LDAP_USER_OBJECT_CLASS = account

        logdir=/ranger/ranger-2.0.0-usersync/logs 

        SYNC_GROUP_SEARCH_ENABLED=true

        SYNC_GROUP_SEARCH_BASE=ou=Groups,dc=hadoop,dc=com

        SYNC_GROUP_SEARCH_SCOPE= sub

        SYNC_GROUP_OBJECT_CLASS=posixGroup

        SYNC_GROUP_NAME_ATTRIBUTE=cn

        SYNC_GROUP_MEMBER_ATTRIBUTE_NAME=memberUid    

注:如果ranger安装在集群外的ECS上,需要在集群master节点先生成truststore.jks,然后将其拷贝到ECS节点,并在install.properties文件中配置一下配置项:

生成truststore.jks命令,用户可自己指定:

keytool -import -trustcacerts -alias MyLdap -file /opt/Bigdata/MRS_2.1.1/install/FusionInsight-ldapclient-2.5.0/ldapclient/local/cert/cacert.pem -keystore /home/ranger/truststore.jks -storepass ranger

添加配置:

AUTH_SSL_TRUSTSTORE_FILE=/etc/ranger/usersync/conf/truststore.jks

AUTH_SSL_TRUSTSTORE_PASSWORD=ranger


2.2.3        启动RangerUsersync

1)   配置环境变量

        export RANGER_USERSYNC_HOME=/ranger/ranger-2.0.0-usersync

2)  修改脚本ranger-usersync-services.sh

        在JAVA_OPTS中添加 -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true

3)  执行sh /ranger/ranger-2.0.0-usersync/setup.sh

4)  启动usesync进程

       sh /ranger/ranger-2.0.0-usersync/start.sh

5)  ps –ef | grep ranger 查看ranger usersync进程 和http端口5151是否已启动

2.2.4        查看用户是否同步

ranger webUIsettings页签查看用户是否同步成功

3      安装组件plugin

3.1      安装hive plugin

将编译好的ranger-2.0.0-hive-plugin.tar.gz拷贝至集群所有hiveserver所在节点,解压至/ranger/目录下

3.1.1        修改配置

1)  在MRS Manager页面添加或者修改如下配置项,保存配置暂不重启。

        1.     Key:hive.security.authorization.enabled     

                Value:true

        2.     Key:hive.security.authorization.manager     

                Value:org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory

        3.     Key:hive.security.authenticator.manager     

                Value:org.apache.hadoop.hive.ql.security.SessionStateUserGroupAuthenticator

        4.     Key:hive.conf.restricted.list     

                Value:hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager

2) 修改ranger-1.0.1-hive-plugin的install.properties

        POLICY_MGR_URL=http://ip:6080

        REPOSITORY_NAME=hivedev

        COMPONENT_INSTALL_DIR_NAME=/opt/Bigdata/MRS_2.1.1/install/FusionInsight-Hive-3.1.0/hive-3.1.0

3)  执行./enable-hive-plugin.sh  进行安装

4)  将/opt/Bigdata/MRS_2.1.1/install/FusionInsight-Hive-3.1.0/hive-3.1.0/conf/目录下ranger-*.xml拷贝至/opt/Bigdata/MRS_2.1.1/1_x_HiveServer/etc/目录下,路径根据实际情况填写,注意文件权限和该路径下其他文件保持一致

5)  在MRS Manager上重启hive服务

6)  启动完成后,ranger会在/etc/目录下创建ranger/hivedev/目录用于存放配置的权限信息,请确保该目录omm用户可访问。

3.1.2        Ranger webUI配置hive策略

1)在ServiceManager HIVE中,新增repository, 即保存权限控制策略的仓库。命名为“hivedev”,注意:这里仓库的命名要和 hive plugin install.properties中配置的仓库名称一致。

2 编辑hivedev,主要填入下图中红框标注的内容。用户名和密码随意填写。Jdbc.url要填所控制的集群连接hive组件的url。完成之后,点击testConnection测试连通性,最后保存。

 

3)在hivedev中新增控制策略Test。编辑策略主要填入策略名称,数据库、具体的表以及表对应的列,在Allow Conditions中配置具体用户对表的控制权限,并保存。除了配置Allow Conditions,也可配置Deny Conditions,这取决于用户的使用场景。


3.1.3        验证上述配置的策略是否生效

1)  先以root用户通过beeline连接到hive

    

2)  通过ranger中配置的用户连接到hive

Ø  !connect jdbc:hive2://192.168.2.29:2181,192.168.2.129:2181,192.168.2.73:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2

Ø  输入用户名和密码登录

3)  执行表中配置的允许操作和不允许操作,查看结果。

3.2      安装hbase plugin

将编译好的ranger-2.0.0-hbase-plugin.tar.gz拷贝至集群所有HMasterRegionserver节点,解压至/ranger/目录下,注意ranger目录下文件属组为omm:wheel

3.2.1        修改配置

1)   修改install.properties

        POLICY_MGR_URL=http://ip:6080

        REPOSITORY_NAME=hbasedev

        COMPONENT_INSTALL_DIR_NAME=/opt/Bigdata/MRS_2.1.1/install/FusionInsight-HBase-2.1.1.0101/hbase

2)   在MRS Manager页面添加或者修改如下配置项,保存配置暂不重启

        1.       Key:hbase.coprocessor.master.classes     

                  Value:org.apache.hadoop.hbase.hindex.server.master.HIndexMasterCoprocessor,org.apache.hadoop.hbase.security.access.ReadOnlyClusterEnabler, org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor

        2.       Key:hbase.security.authorization     

                  Value:true

3)   在HMaster和regionServer节点执行sh ranger-2.0.0-hbase-plugin/enable-hbase-plugin.sh  进行安装

4)   将/opt/Bigdata/MRS_2.1.1/install/FusionInsight-HBase-2.1.1.0101/hbase/conf/目录下ranger拷贝至/opt/Bigdata/MRS_2.1.1/1_x_HMaster/etc/或者/opt/Bigdata/MRS_2.1.1/1_x_RegionServer/etc/目录下,注意文件权限要和其他文件保持一致

5)   重启HBase服务

6)   启动完成后,ranger会在/etc/目录下创建ranger/hbasedev/目录用于存放配置的权限信息,请确保该目录omm用户可访问

3.2.2        Ranger webUI上配置hbase策略


1)ServiceManager HBASE中,新增repository, 即保存权限控制策略的仓库。命名为“hbasedev”,注意:这里仓库的命名要和 hbase plugin install.properties中配置的仓库名称一致。

2 编辑hbasedev。用户名和密码随意填写。hbase.zookeeper.quorum 要填所控制的集群的zk地址。完成之后,点击testConnection测试连通性,最后保存。

3)在hbasedev中新增控制策略Test。编辑策略,并在Allow Conditions中配置具体用户对表的控制权限后保存。除了配置Allow Conditions,也可配置Deny Conditions,这取决于用户的使用场景。

3.2.3        验证上述配置的策略是否生效

yzh用户连接到hbase shell,执行语句查看结果

3.3      安装hdfs plugin

将编译好的ranger-2.0.0-hdfs-plugin.tar.gz拷贝至集群所有NameNode所在节点,解压至/ranger/目录下

3.3.1        修改配置

1)     在MRS Manager页面添加或者修改如下配置项,保存配置暂不重启。

        1.    Key:dfs.namenode.inode.attributes.provider.class     

               Value:org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer

        2.    Key:dfs.permissions.superusergroup     

               Value:                    ----该参数置空

        3.    Key:dfs.permissions.enabled     

               Value:true

2)     修改ranger-1.0.1-hdfs-plugin的install.properties

        POLICY_MGR_URL=http://ip:6080

        REPOSITORY_NAME=hadoopdev

        COMPONENT_INSTALL_DIR_NAME= /opt/Bigdata/MRS_2.1.1/install/FusionInsight-Hadoop-3.1.1/hadoop/

3)     执行sh ranger-2.0.0-hdfs-plugin/enable-hdfs-plugin.sh  进行安装

4)     将/opt/Bigdata/MRS_2.1.1/install/FusionInsight-Hadoop-3.1.1/hadoop/etc/hadoop/目录下ranger*.xml拷贝至/opt/Bigdata/MRS_2.1.1/1_9_NameNode/etc/目录下,注意文件权限要和其他文件保持一致

5)     在MRS Manager上重启hdfs服务

6)     启动完成后,ranger会在/etc/目录下创建ranger/hadoopdev/目录用于存放配置的权限信息,请确保该目录omm用户可访问。

7)     然后前往ranger webui配置hdfs策略

3.3.2        Ranger webUI上配置hdfs策略

1)在ServiceManager HDFS中,新增repository, 即保存权限控制策略的仓库。命名为“hadoopdev”,注意:这里仓库的命名要和 hdfs plugin install.properties中配置的仓库名称一致。

2 编辑hadoopdev。用户名和密码随意填写。完成之后,点击testConnection测试连通性,最后保存。

3)在hadoopdev中新增控制策略Test。在Allow Conditions中配置具体用户对路径的控制权限,并保存。除了配置Allow Conditions,也可配置Deny Conditions,这取决于用户的使用场景。

3.3.3        验证上述配置的策略是否生效

如图为在ranger上配置权限前后访问hdfs test目录的结果

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。