基于HUE可视化的大数据权限管理 安装phpldapadmin(ldap管理工具) 集成CDH(HUE、Hive、Impala) HUE代理LDAP用户 在Hue上创建用户 授权hive组为管理员 创建角色并授权验证 授权验证

● 系统环境说明

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的权限认证。

首先安装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界面:

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

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

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

集成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可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

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

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

  1. 使用admin用户登录Hue

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

  1. 创建hive用户

点击用户管理:

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

点击:Users > Add/Sync LDAP user

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证
基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

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

点击:Groups > Add group

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

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

授权hive组为管理员

  1. 使用hive用户登录Hue

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

  1. 点击Hue左上角菜单基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证,进入Security界面

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

点击:Roles > Add

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

添加admin role

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

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

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

创建角色并授权验证

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

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证
基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

点击保存查看:

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

授权验证

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

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

对表进行SELECT、COUNT和INSERT操作

SELECT没有问题:

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

COUNT没有问题:

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

INSERT失败:

基于HUE可视化的大数据权限管理
安装phpldapadmin(ldap管理工具)
集成CDH(HUE、Hive、Impala)
HUE代理LDAP用户
在Hue上创建用户
授权hive组为管理员
创建角色并授权验证
授权验证

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