天天看點

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內建sentry

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

對于hue來說

hue內建sentry

第一個登陸的使用者擁有管理者權限,可以添加使用者/組,修改使用者密碼,配置設定hue那的權限

hue內建sentry

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

hue內建sentry

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

使用sentry授權hue的使用者/組 

參考位址:

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

hue內建sentry

條件:

cdh服務必須有認證(kerberos)

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

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

hue內建sentry

并将該使用者設為超級使用者

hue內建sentry

并在linux上添加該使用者組(所有節點)

hue內建sentry

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

hue內建sentry

添加完成後,重新開機hue服務

hue內建sentry

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

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

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

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

sentry資料庫權限設定為all(把之前給hive組的admin role 授給該組)

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

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

hue內建sentry

是以将admin role授給sysadmins組

grant role admin to group sysadmins;

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

hue內建sentry

點選左上角,并進入security

hue內建sentry
hue內建sentry

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

hue內建sentry

點選右上角的add

hue內建sentry

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

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

hue內建sentry

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

注意:要為一個使用者配置設定權限,必須在hue界面添加使用者并配置設定組,還得在linux上添加使用者/組,使用者名/組名必須同名,如果該使用者需要jdbc or odbc遠端連接配接,必須添加kerberos princ并設定密碼(princ必須通linux/hue使用者同名),就可以遠端通路了。