• 基于HUE可视化的大数据权限管理


    ● 系统环境说明

    Linux环境:centos7.4
    CDH:5.16.1
    Java:1.8.0_131
    LDAP版本:2.4.44
    Sentry版本:1.5.1

    ● 集群配置

    机器数量:50
    内存:64G
    硬盘:4T
    CPU核心数:32

    关于Ldap的方案,此处就不再赘述,参考我的另一篇文章:
    Ldap:基于LDAP认证的大数据权限解决方案
    Sentry:基于Sentry的大数据权限解决方案

    本篇文章主要讲述如何使用HUE可视化地管理大数据权限,过程比较简单,下面我们来进行操作。

    前提:集群已完成Ldap和Sentry的权限认证。

    安装phpldapadmin(ldap管理工具)

    首先安装Apache和PHP:

    yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

    然后安装phpldapadmin:

    yum -y install phpldapadmin

    httpd与phpldapadmin进行集成:
    修改配置文件:

    root@cdh01 ~ 
    > # vim /etc/phpldapadmin/config.php

    397行取消注释,398行添加注释:

    $servers->setValue('login','attr','dn');
    // $servers->setValue('login','attr','uid');

    这里需要修改,如果不修改,phpldapadmin会去用uid去搜索条目,不会用dn去搜索,导致报密码错误。

    phpldapadmin的ip过滤规则默认是拒绝所有ip访问,先去修改一下规则,我们才可以访问

    vim /etc/httpd/conf.d/phpldapadmin.conf

    修改配置:

    # 这是Apache2.2和以前的修改方法 
    
    <IfModule mod_authz_core.c> 
    
    </IfModule> 
    
    把下面的Deny from all 改为Allow from all 
    
    #这是apache2.4和以后的修改方法 
    
    #允许172.16.10.16访问
    Require ip 172.16.10.16
    #允许172.16这个网段访问
    Require ip 172.16.0.0/16
    #允许所有ip访问
    Require all granted
    

    我们可以根据自己需要修改来,修改完之后启动:

    systemctl restart httpd
    

    访问http://10.100.11.1/phpldapadmin,UI界面:

    如果是跟着我的另一篇Ldap文章操作的话,用户名则是:uid=ldapadmin,ou=people,dc=cdh.ai,dc=com,密码则是admin

    集成CDH(HUE、Hive、Impala)

    此处不再赘述,参考文章开头给出的另一篇Ldap权限方案。

    HUE代理LDAP用户

    1. 在ldap中创建hue用户 (参考另一篇Ldap文章)
    2. hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)中添加这些配置:
    [beeswax]
    close_queries=True
    use_sasl=False
    auth_username=hue
    auth_password=admin
    [impala]
    server_host=cdh01.ali.aiwaystack.com
    server_interface=hiveserver2
    server_port=21050
    query_timeout_s=100
    impersonation_enabled=True
    auth_username=hue
    auth_password=admin
    
    1. 在hive和i mpala的core-site.xml 的 Hive 服务高级配置代码段(安全阀)中增加以下配置:
    <property>
        <name>hadoop.proxyuser.hue.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hue.groups</name>
        <value>*</value>
    </property>
    

    在Hue上创建用户

    在集群所有节点分别创建系统用户hive/dy1,hive用户所属组为hive组,其它用户所属组也与用户名称一样

    通过Hue管理员分别创建用户hive/dy1,且需将hive包含为组成员

    1. 使用admin用户登录Hue

    1. 创建hive用户

    点击用户管理:

    点击:Users > Add/Sync LDAP user


    1. 进入用户管理,创建hive的组

    点击:Groups > Add group

    注意:Name必须与hive组名一致,权限需勾选所有,另外dy1也用同样方式创建。

    授权hive组为管理员

    1. 使用hive用户登录Hue

    1. 点击Hue左上角菜单,进入Security界面

    点击:Roles > Add

    添加admin role

    hive用户可以查看到server1下所有的数据库和表:

    创建角色并授权验证

    使用hive用户创建一个对alluxio_dy库有只读(SELECT)权限的角色dy_role1,并授权给dy1用户组,所属该用户组的用户对alluxio_dy库下所有表只有SECLET权限没有INSERT权限。


    点击保存查看:

    授权验证

    使用dy1用户登录Hue,可以看到alluxio_dy下所有表

    对表进行SELECT、COUNT和INSERT操作

    SELECT没有问题:

    COUNT没有问题:

    INSERT失败:

    同理,表级别、列级别、File Browser等授权操作大同小异。

  • 相关阅读:
    循环语句
    流程控制
    特殊的赋值运算符
    位运算符
    运算符
    八种基本类型
    cmd基础命令
    springboot项目部署到tomcat步骤以及常见问题
    【算法问题】如何实现大整数相加
    【算法问题】删除k个数字后的最小值
  • 原文地址:https://www.cnblogs.com/daemonyue/p/13098278.html
Copyright © 2020-2023  润新知