● 系統環境說明
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等授權操作大同小異。