zoukankan      html  css  js  c++  java
  • 大数据运维---Ranger权限管理

    一、基本介绍

      1、介绍

      Ranger是HDP体系统中安全管理的重要一环。它提供了具体资源(如HBase中的具体表)权限管控、访问监控、数据加密的功能。

      2、组件介绍

      Raner是由三个部分组件:Ranger Admin 、Ranger Usersync 与Ranger plugin,它们关系如下:

      

       3、在Ranger的官网中有对于这三个组件的说明

    组件名称说明
    Admin Ranger Admin Portal是安全管理的中心接口。 用户可以创建和更新策略,这些策略存储在策略数据库中。 每个组件内的Plugins会定期轮询这些策略。Portal还包括一个审计服务器,它发送从插件收集的审计数据,以便存储在HDFS或关系数据库中
    UserSync 同步实用工具来从Unix或LDAP或Active Directory中拉取用户和组。 用户或组信息存储在Ranger门户中,用于策略定义。
    PlugIn 插件是嵌入每个集群组件进程的轻量级Java程序。 例如,Apache Hive的Apache Ranger插件嵌入在Hiveserver2中。 这些插件从中央服务器提取策略,并将它们本地存储在一个文件中。 当用户请求通过组件时,这些插件拦截请求并根据安全策略进行评估。 插件还可以从用户请求中收集数据,并按照单独的线程将此数据发送回审计服务器

      4、Ranger Admin

      Ranger admin它包含三个部分: Web页面、Rest消息处理服务以及数据库。 我们可以把它看成一个用来数据集中存储中心(所有的数据都集中存在这里,但是其它两个组件也可单独运行存在)。它的具体作用:
        1. 接收UserSync进程传过来的用户、组信息。 并将它们保存到MySql数据库中。 需要注意:这些用户信息在配置权限策略的时候需要使用。这个很容易理解,就象领物料的时候,管理员需要登记物料的领用人,如果不是本公司的人,肯定就不会让你领了。
        2. 提供创建policy策略的接口
        3. 提供外部REST消息的处理接口

      5、UserSync

      UserSync是Ranger提供的一个用户信息同步接口,可以用来同步Linux用户信息与LDAP用户信息。通过配置项:
      SYNC_SOURCE = LDAP/Unix
      来确认是LDAP还是Unix, 默认情况是同步Unix信息。 

      UserSync不是实时同步的

      6、Plugin

        1)NameNode启动时候,会创建一个Hdfs Plugin线程, 这个线程启动后就会读取配置信息

        2)同步完成后,hdfs plugin线程会每隔一段时间(30s)会往ranger admin发送一次消息,同步一次policy信息

    二、安装服务

      1、登陆Ambari,通过点击首页左下角的Actions按钮我们会看到新建服务选项

      

       2、点击新建服务之后会进入新建服务向导页面。我们勾选Ranger和Ranger KMS这两个服务并点击下一步,如下图所示

      

       3、接着我们会看到一条提示信息,要求我们配置Ambari-Server的JDBC驱动信息,如下图所示。因为Ranger需要使用关系型数据库存储一些元数据信息,这里我们选择使用MySQL数据库。将MySQL驱动jar包上传到Ambari-Server所在的服务器,然后执行以下命令。  

      

       4、将3个服务安装在同一台机器上

      

       5、分配Tagsync,从客户端和客户端组件的分配。

      

       6、Ranger Admin的配置

    [root@node101 ~]# mysql -uroot -pyinzhengjie
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 71
    Server version: 5.6.42 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, 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> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | ambari             |
    | mysql              |
    | performance_schema |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> CREATE DATABASE ranger;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> GRANT ALL PRIVILEGES ON ranger.* TO 'ranger'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;       
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select Host,User,Password from mysql.user where user='ranger';
    +----------------------------+--------+-------------------------------------------+
    | Host                       | User   | Password                                  |
    +----------------------------+--------+-------------------------------------------+
    | node101.yinzhengjie.org.cn | ranger | *BD0B1F48FDC55BD27555FC2F22FF29A68A25A1D7 |
    +----------------------------+--------+-------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> quit
    Bye
    [root@node101 ~]# 
    [root@node101 ~]# mysql -uroot -pyinzhengjie                              #登陆mysql进行授权操作
     
    [root@node101 ~]# mysql -h node101.yinzhengjie.org.cn -uranger -pyinzhengjie
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 80
    Server version: 5.6.42 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, 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> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | ranger             |
    +--------------------+
    2 rows in set (0.00 sec)
    
    mysql> quit
    Bye
    [root@node101 ~]# 
    [root@node101 ~]# mysql -h master -uranger -padmin123          #在mysql服务端授权成功之后,一定要进行测试!验证是否可以登陆数据库!

           

       7、Ranger的配置 ,也可以先关闭,等安装完成了,再去开启,填入配置

      

       8、配置RangerKMS

    [root@node101 ~]# mysql -uroot -pyinzhengjie
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 84
    Server version: 5.6.42 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, 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> CREATE DATABASE  rangerkms;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> GRANT ALL PRIVILEGES ON rangerkms.* TO 'rangerkms'@'5' IDENTIFIED BY '123456' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> select Host,User,Password from mysql.user where user='rangerkms';
    +----------------------------+-----------+-------------------------------------------+
    | Host                       | User      | Password                                  |
    +----------------------------+-----------+-------------------------------------------+
    | node101.yinzhengjie.org.cn | rangerkms | *BD0B1F48FDC55BD27555FC2F22FF29A68A25A1D7 |
    +----------------------------+-----------+-------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> quit
    Bye
    [root@node101 ~]# 
    [root@node101 ~]# mysql -uroot -pyinzhengjie                                  #数据库授权
     
    [root@node101 ~]# mysql -h node101.yinzhengjie.org.cn -urangerkms -pyinzhengjie
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 85
    Server version: 5.6.42 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, 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> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | rangerkms          |
    +--------------------+
    2 rows in set (0.00 sec)
    
    mysql> quit
    Bye
    [root@node101 ~]# 
    [root@node101 ~]# mysql -h master -urangerkms -p123456               #授权成功后,别忘记验证授权是否生效!

           

      9、接着往下拉,需要你输入一个密码,如下图所示,输入后点击下一步:

      

       10、配置完毕后,会弹出一个Dependent Configurations对话框,如下图所示,点击OK即可~ 

      

       11、忽略警告(我的电脑内存有限,分配的少点仅仅用于测试)

      

       12、确认配置无误后,点击Depoly按钮

      

       13、安装服务成功 

      

       14、点击完成

      

       15、安装完成后,需要陆续重启已经部署的服务

      

     三、配置服务

      1、安装完毕之后我们需要配置Ranger以让它能够正常工作,通过点击Configs按钮来到配置界面。如下图所示,Ranger到配置项有很多分为了六大类,他们分别是管理员配置,用户信息配置,插件配置,审计配置,标签同步配置和高级配置。这里我们主要关注插件配置和审计配置,其他配置项保持默认即可。、

      

       2、对Ranger的插件配置

      

       3、对Ranegr的审计配置

      

       4、点击ok,保存配置信息

      

       5、如下图所示,按照提示重启相应的服务即可

      

       6、重启相应的服务之后,我们就可以去看看Ranger的Web UI管理控制台啦

       

       7、Ranger功能介绍-查看Ranger用户

      如下图所示,通过Ambari的Quick Links功能进入Ranger的管理控制台,输入默认的用户名和密码进行登陆(默认的用户名和密码均为“admin”)。 

      

       8、单击Settings设置按钮进入Ranger用户管理界面 

      

       9、如下图所示,点击Setting之后,在这里可以看到Ranger的所有用户。我们发现Ranger已经预建好来一批用户,这些用户是不是很眼熟呢?他们是Ambari用户管理里面的集群组件用户如出一辙。没错,这些用户就是从Hadoop集群的Linux用户同步过来的。

      

       10、Ranger将用户分为两类来源,内部用户和外部扩展用户。

      内部用户:
          是指Ranger自己单方面创建的用户,主要用来做系统内部管理相关工作,与外部用户没有关联。
      外部用户:
          是指通过同步程序从集群服务中同步而来的用户,是Ranger用户和集群服务用户的一层映射,主要用于权限策略的分配。如上图所示,admin用户属于内部用户,而所有同步过来的集群服务用户均属于外部扩展用户。

    四、Ranger功能介绍-权限策略

       1、现在我们开始介绍如何通过Ranger进行数据授权。如下图所示,首先单击“Access Manager”进入服务管理页面。

      

       2、如下图所示,我们会看到一个格栅布局的列表,他们是Ranger目前能够支持的所有子系统。因为在安装Ranger的时候已经开启了HDFS的插件,所以我们在HDFS组件下可以看到“hdp_hadoop”服务。它是Ranger根据开启的插件预建的服务项,以Ambari集群名称 + 组件名称的规则命名。

           

       3、点击上图中的“hdp_hadoop”进入HDFS的权限策略列表页面。如下图所示,这里可以查看,新建,修改根删除HDFS的权限策略,单击“Add New Pollicy”进入新建策略页面:

      

       4、点击上图中的“Add New Pollicy”按钮后,就可以进入下图的界面,授权策略页面分为Pollicy Detail和Allow Conditions两个部分,下图中针对各个参数都进行了标注

      

       5、如上图所示,点击“Add”后我们就会在HDFS的策略界面中看到对应的规则,如下图所示

      

       6、接下来我们需要验证下权限策略是否生效,首先通过ssh登陆到集群服务器并切换成ranger用户。具体操作如下:

    [root@master ~]# su ranger
    [ranger@master root]$ hdfs dfs -ls /                                                                   可以查看
    Found 9 items
    drwxrwxrwt   - yarn   hadoop          0 2020-11-18 14:46 /app-logs
    drwxr-xr-x   - yarn   hadoop          0 2020-11-18 14:40 /ats
    drwxr-xr-x   - hdfs   hdfs            0 2020-11-18 14:41 /atsv2
    drwxr-xr-x   - hdfs   hdfs            0 2020-11-18 14:40 /hdp
    drwxr-xr-x   - mapred hdfs            0 2020-11-18 14:40 /mapred
    drwxrwxrwx   - mapred hadoop          0 2020-11-18 14:40 /mr-history
    drwxr-xr-x   - hdfs   hdfs            0 2020-11-18 14:40 /ranger
    drwxrwxrwx   - hdfs   hdfs            0 2020-11-18 14:42 /tmp
    drwxr-xr-x   - hdfs   hdfs            0 2020-11-18 14:40 /user
    [ranger@master root]$ hdfs dfs -mkdir /user/test1                                                       没有写的权限
    mkdir: Permission denied: user=ranger, access=WRITE, inode="/":hdfs:hdfs:drwxr-xr-x

      7、接下来,我们需要编辑咱们之前自定义的策略,修改ranger用户的权限,如下图所示,首先点击编辑:添加上写的权限

      

    [ranger@master root]$ hdfs dfs -mkdir /user/test1

    五、Ranger功能介绍-审计日志

      作为一个企业大数据平台,它的基础服务会被大量上层应用使用(例如HDFS,HBase等)。对平台中基础组件对操作进行追溯也是一项必不可少对功能,Ranger就能帮助实现审计日志对功能。Ranger为我们提供了四类审计日志功能,即访问日志,管理员日志,登陆会话日志,插件日志。

       1、访问日志

      访问日志主要记录对是用户对资源对访问情况。还记得刚才使用ranger用户执行了那些HDFS操作吗?现在通过Audit审计菜单进入访问日志页面。

      

       2、管理员日志

      管理员日志主要记录的是管理员的操作,例如新建用户,新建或者修权限策略这些操作都会被管理员日志记录下来。

      

       3、登陆会话日志

      登陆会话日志会记录所有用户的登陆行为,包括登陆人,登陆方式,登陆时间,登陆人的IP地址等信息。

      

       4、插件日志

      Ranger的插件会定期从管理门户获取权限策略,插件日志就记录了这些插件同步策略的轨迹。什么插件在哪个时间点更新何种策略都能清晰的在日志中体现。

      

  • 相关阅读:
    chrome视频播放加速
    centos磁盘空间重新分配
    mseed2sac的安装和使用
    查找台站信息得到台站数据的网站
    java install
    CMT learning
    hosts持续更新
    what is SVD and how to calculate it
    google 镜像
    z变换
  • 原文地址:https://www.cnblogs.com/aqicheng/p/14011264.html
Copyright © 2011-2022 走看看