hue集成sentry

 

前言

集羣啓用kerberos後,訪問impala的方式除了impala-shell、jdbc工具,還有hue

當然不可能在impala-shell編寫sql,jdbc工具的話,電腦上還得裝kerberos客戶端,雖然不麻煩,確實多了一步

所以通過sentry給hue授權,實現不同用戶登陸hue擁有不同得權限

hue權限

參考地址:

https://www.cloudera.com/documentation/enterprise/5-16-x/topics/hue_adm_permissions.html

注意:hue和底層集羣服務有獨立的權限,hue的超級管理員對hdfs、hive等等沒任何意義。

對於hue來說

 

第一個登陸的用戶擁有管理員權限,可以添加用戶/組,修改用戶密碼,分配hue那的權限

hue那的權限只是前端對用戶的顯示,如果沒有impala權限,該用戶則無法調impala sql,做不到對庫和表的控制

 

 

8888頁面也不會有impala那個tab,hue本身manage user可分配的權限對sentry沒有任何意義

使用sentry授權hue的用戶/組 

參考地址:

https://www.cloudera.com/documentation/enterprise/5-16-x/topics/hue_sec_sentry_auth.html

條件:

cdh服務必須有認證(kerberos)

hue user/group必須和linux(所有節點)上的user/group一致

 

用第一次登陸的admin/admin添加用戶/組

並將該用戶設爲超級用戶

 

並在linux上添加該用戶組(所有節點)

 

爲了使用戶可以在hue中進行授權,該用戶的組必須在sentry如下配置中添加

 

 

添加完成後,重啓hue服務

 

可以看到,想成爲系統管理員,必須有一下條件:

在linux上必須有該用戶/組(已添加)

hue上有該用戶/組(已添加)

hue上該用戶是超級用戶(已修改)

sentry數據庫權限設置爲all(把之前給hive組的admin role 授給該組)

後面的hdfs的acl(用的kudu,不修改無影響)

 

剛啓用kerberos時,beeline進hive只有一個default庫,然後執行了以下操作

所以將admin role授給sysadmins組

grant role admin to group sysadmins;

 

打開8888,用test_hue1用戶登陸,管理員有所有庫的權限,並且可以管理hue的用戶/組,admin/admin除了可以管理用戶/組外,無法進行sentry授權

 

點擊左上角,並進入security

 

 

 

點擊roles,可以看到之前添加的role和group了

 

點擊右上角的add

 

name那需要填role名,groups所屬組,可以多個,也可以沒有

點擊+就可以grant privileges給該role了

第一個框填db或者db.tab,也可以*(表示所有庫),第二個爲hdfs的url(用不到),第三個就是分配權限了,分配完之後保存,beeline進hive可以show roles;就可以看到在hue界面創的role了.

注意:要爲一個用戶分配權限,必須在hue界面添加用戶並分配組,還得在linux上添加用戶/組,用戶名/組名必須同名,如果該用戶需要jdbc or odbc遠程連接,必須添加kerberos princ並設置密碼(princ必須通linux/hue用戶同名),就可以遠程訪問了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章