基於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等授權操作大同小異。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM