基于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用户
- 在ldap中创建hue用户 (参考另一篇Ldap文章)
- 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
- 在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包含为组成员
- 使用admin用户登录Hue
- 创建hive用户
点击用户管理:
点击:Users > Add/Sync LDAP user
- 进入用户管理,创建hive的组
点击:Groups > Add group
注意:Name必须与hive组名一致,权限需勾选所有,另外dy1也用同样方式创建。
授权hive组为管理员
- 使用hive用户登录Hue
- 点击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等授权操作大同小异。