1. 背景
雖然在集羣上部署了kerberos認證,但是kerberos只是對用戶層面進行認證,凡是認證通過的用戶都有全量的訪問權限,這很不安全,需要進一步對用戶的權限進行控制,Sentry 的作用就是這個。
2. 添加Sentry服務
2.1.進入CM首頁-->選擇集羣-->添加服務
2.2.選擇Sentry,點擊繼續
2.3.給Sentry分配主機,繼續
2.4.給Sentry指定數據庫
此處填寫最初搭建CDH的時候,給Sentry預留的數據庫名稱和用戶名密碼,點擊繼續
3. 啓動Sentry服務
3.1.準備工作
- 使用默認的Hive倉庫目錄,如果啓用了Kerberos,需要切換到hdfs用戶
- 將倉庫的權限設置爲771,所屬設置爲hive:hive
hdfs dfs -chmod -R 771 /user/hive/warehouse hdfs dfs -chown -R hive:hive /user/hive/warehouse |
- 在CM中禁用HiveServer2的模擬
Hive-->配置 -->HiveServer2--> 主要 -->取消勾選“HiveServer2 啓用模擬” |
- 若配置了MR/YARN,要給Hive向MR/YARN提交任務的權限
MR/YARN-->配置-->範圍:TaskTracker/NodeManager-->類別:安全-->最小用戶ID爲0/允許的系統用戶:有hive-->重啓YARN |
- 關閉Hive CLI用戶接觸Hive元數據的渠道
Hive-->配置-->搜proxyuser-->添加三個用戶 hive、hue、sentry |
3.2.給Hive啓用Sentry服務
Hive-->配置-->範圍:Hive-->類別:主要-->選擇Sentry服務-->搜索到啓用數據庫中的存儲通知,打開 -->重啓 |
3.3.把Hive添加的Sentry的管理員組裏
Sentry-->配置-->範圍:Sentry-->類別:主要-->管理組-->保存 |