《如何使用Sentry為Solr賦權》以及《使用命令列建立collection時Sentry給Solr賦權的問題》中,對Solr與Sentry的整合授權進行過介紹,並透過命令列的方式建立collection,以及透過命令列的方式對collection的賦權進行操作並測試。我們知道在Hive/Impala中使用Sentry時,既可以透過命令列建立相關角色並賦權,也可以在Hue中進行相關操作。對於Solr的賦權其實也是一樣的,CDH同時支援在Hue中與命令列操作賦權,本文Fayson主要介紹如何在Hue中使用Sentry為Solr賦權。
內容概述:
1.啟用Solr的Sentry賦權
2.其他前置準備
3.在Hue中建立collection以及匯入樣例資料
4.Hue中對Solr的collection賦權測試
5.總結
測試環境:
1.CM5.14.3/CDH5.14.2
2.作業系統版本為Redhat7.3
3.採用root使用者進行操作
前置條件
1.叢集已啟用Kerberos
2.Hue已整合Solr與Sentry
2.啟用Solr的Sentry賦權
1.首先如果要啟用Solr的Sentry賦權,Solr服務必須啟用Kerberos認證,所以請確保你的CDH叢集已經啟用了Kerberos。
2.然後對Solr服務進行以下配置
儲存配置並按照要求重啟服務。
3.確保Hue已經整合Sentry與Solr服務。
3.其他前置準備
確保你學會了在Windows客戶端使用瀏覽器訪問Kerberos的CDH的一些Hadoop服務介面。因為當對Solr服務啟用了Kerberos後,Solr服務不像YARN或HDFS的介面可以選擇是否對介面訪問啟用Kerberos認證,預設Solr Web UI即採用了Kerberos了認證。如果你不會,請參考Fayson之前的文章《如何在Kerberos下使用Solr》和《Windows Kerberos客戶端配置並訪問CDH》
4.在Hue中建立collection以及匯入樣例資料
1.這裡我們首先準備一個8個欄位的csv檔案,一共10行,使用逗號分隔,用來匯入Solr並實現全文索引。並將該檔案put到一個hdfs目錄。
2.注意:因為我們開啟了Sentry,在建立collection的時候我們需要使用solr使用者。否則是沒有許可權建立collection的。這裡跟在Hive/Impala中使用Sentry時,使用hive作為管理員使用者是相似的。我們在Hue中建立一個solr的group,以及solr使用者,然後用solr使用者登入Hue,建立過程略。
3.使用solr使用者登入hue後,選擇“indexes”。
注意還要輸入collection的名字,這裡我們輸入“collection1”,選擇主鍵以及其他欄位,這裡我們選擇field_1也即第一個欄位為主鍵。
這裡建立collection以及匯入資料成功
4.使用solr使用者登入Kerberos,查詢collection1確認資料都已經匯入成功。
(可左右滑動)
5.Hue中對Solr的collection賦權測試
1.使用solr使用者登入Hue中,建立admin角色,並對solr使用者組分配所有許可權。
選擇security模組
建立solr_admin角色,並賦予所有許可權。
2.使用fayson使用者登入Hue進行建立collection測試。
報錯,顯示沒有許可權
3.在Windows客戶端使用fayson使用者登入Kerberos,訪問Solr Web UI
顯示一直在loading,無法載入
4.使用solr使用者登入Hue,給fayson賦予collection的update許可權。
5.使用fayson使用者登入Hue再次建立collection。
建立成功,說明Sentry給fayson使用者組分配collection的update許可權後,fayson使用者可以建立collection
6.使用fayson使用者分別檢視collection1和collection2的資料。
檢視collection2的資料時報錯沒有許可權,因為我們沒有給fayson使用者組分配collection的query許可權。
檢視collection1時成功,說明使用者組即使沒分配collection的query許可權,但是依舊可以檢視由自己建立的collection。
7.再次使用fayson使用者登入Windows下的Kerberos客戶端,然後訪問Solr的Web UI
依舊顯示一直在loading,即如果該使用者只有collection的update許可權,Solr的Web UI無法檢視。
8.透過Solr使用者登入Hue,將fayson使用者組的許可權改為所有collection都有query許可權。
9.再次使用fayson使用者登入Hue檢視collection2的資料。
可以查詢collection2的資料,說明授權query許可權生效
10.再次使用fayson使用者登入Windows的Kerberos客戶端,然後開啟Solr的Web UI
發現可以登入Solr的Web UI,也可以查詢collection中的資料。
6.總結
1.使用Hue可以介面化配置Solr的Sentry許可權,從而對collection進行許可權管理,主要是query和update。
2.如果對某個使用者只賦予update許可權,則該使用者可以建立collection,但是依舊無法查詢collection。
3.Solr的Sentry的許可權不僅適用於Hue查詢collection資料,也適用於Solr的Web UI。即Sentry的許可權控制是全方位的。
4.如果要訪問Solr的Web UI,必須在Windows客戶端配置Kerberos並登入,使用火狐瀏覽器訪問。具體請參考《如何在Kerberos下使用Solr》和《Windows Kerberos客戶端配置並訪問CDH》。
5.如果是在Solr中使用Sentry許可權管理,CDH叢集必須啟用Kerberos,同時Solr服務也需要啟用Kerberos認證。
6.一旦對solr啟用Sentry授權以後,solr使用者就是管理員,一切管理員操作都需要使用solr使用者來操作,我們在Hue中也同時要建立solr使用者與solr組,這個與我們在Hive/Impala中使用Sentry時,hive使用者是管理員原理是一樣的。
《如何使用Sentry為Solr賦權》以及《使用命令列建立collection時Sentry給Solr賦權的問題》中,對Solr與Sentry的整合授權進行過介紹,並透過命令列的方式建立collection,以及透過命令列的方式對collection的賦權進行操作並測試。我們知道在Hive/Impala中使用Sentry時,既可以透過命令列建立相關角色並賦權,也可以在Hue中進行相關操作。對於Solr的賦權其實也是一樣的,CDH同時支援在Hue中與命令列操作賦權,本文Fayson主要介紹如何在Hue中使用Sentry為Solr賦權。
內容概述:
1.啟用Solr的Sentry賦權
2.其他前置準備
3.在Hue中建立collection以及匯入樣例資料
4.Hue中對Solr的collection賦權測試
5.總結
測試環境:
1.CM5.14.3/CDH5.14.2
2.作業系統版本為Redhat7.3
3.採用root使用者進行操作
前置條件
1.叢集已啟用Kerberos
2.Hue已整合Solr與Sentry
2.啟用Solr的Sentry賦權
1.首先如果要啟用Solr的Sentry賦權,Solr服務必須啟用Kerberos認證,所以請確保你的CDH叢集已經啟用了Kerberos。
2.然後對Solr服務進行以下配置
儲存配置並按照要求重啟服務。
3.確保Hue已經整合Sentry與Solr服務。
儲存配置並按照要求重啟服務。
3.其他前置準備
確保你學會了在Windows客戶端使用瀏覽器訪問Kerberos的CDH的一些Hadoop服務介面。因為當對Solr服務啟用了Kerberos後,Solr服務不像YARN或HDFS的介面可以選擇是否對介面訪問啟用Kerberos認證,預設Solr Web UI即採用了Kerberos了認證。如果你不會,請參考Fayson之前的文章《如何在Kerberos下使用Solr》和《Windows Kerberos客戶端配置並訪問CDH》
4.在Hue中建立collection以及匯入樣例資料
1.這裡我們首先準備一個8個欄位的csv檔案,一共10行,使用逗號分隔,用來匯入Solr並實現全文索引。並將該檔案put到一個hdfs目錄。
2.注意:因為我們開啟了Sentry,在建立collection的時候我們需要使用solr使用者。否則是沒有許可權建立collection的。這裡跟在Hive/Impala中使用Sentry時,使用hive作為管理員使用者是相似的。我們在Hue中建立一個solr的group,以及solr使用者,然後用solr使用者登入Hue,建立過程略。
3.使用solr使用者登入hue後,選擇“indexes”。
注意還要輸入collection的名字,這裡我們輸入“collection1”,選擇主鍵以及其他欄位,這裡我們選擇field_1也即第一個欄位為主鍵。
這裡建立collection以及匯入資料成功
4.使用solr使用者登入Kerberos,查詢collection1確認資料都已經匯入成功。
(可左右滑動)
5.Hue中對Solr的collection賦權測試
1.使用solr使用者登入Hue中,建立admin角色,並對solr使用者組分配所有許可權。
選擇security模組
建立solr_admin角色,並賦予所有許可權。
2.使用fayson使用者登入Hue進行建立collection測試。
報錯,顯示沒有許可權
3.在Windows客戶端使用fayson使用者登入Kerberos,訪問Solr Web UI
顯示一直在loading,無法載入
4.使用solr使用者登入Hue,給fayson賦予collection的update許可權。
5.使用fayson使用者登入Hue再次建立collection。
建立成功,說明Sentry給fayson使用者組分配collection的update許可權後,fayson使用者可以建立collection
6.使用fayson使用者分別檢視collection1和collection2的資料。
檢視collection2的資料時報錯沒有許可權,因為我們沒有給fayson使用者組分配collection的query許可權。
檢視collection1時成功,說明使用者組即使沒分配collection的query許可權,但是依舊可以檢視由自己建立的collection。
7.再次使用fayson使用者登入Windows下的Kerberos客戶端,然後訪問Solr的Web UI
依舊顯示一直在loading,即如果該使用者只有collection的update許可權,Solr的Web UI無法檢視。
8.透過Solr使用者登入Hue,將fayson使用者組的許可權改為所有collection都有query許可權。
9.再次使用fayson使用者登入Hue檢視collection2的資料。
可以查詢collection2的資料,說明授權query許可權生效
10.再次使用fayson使用者登入Windows的Kerberos客戶端,然後開啟Solr的Web UI
發現可以登入Solr的Web UI,也可以查詢collection中的資料。
6.總結
1.使用Hue可以介面化配置Solr的Sentry許可權,從而對collection進行許可權管理,主要是query和update。
2.如果對某個使用者只賦予update許可權,則該使用者可以建立collection,但是依舊無法查詢collection。
3.Solr的Sentry的許可權不僅適用於Hue查詢collection資料,也適用於Solr的Web UI。即Sentry的許可權控制是全方位的。
4.如果要訪問Solr的Web UI,必須在Windows客戶端配置Kerberos並登入,使用火狐瀏覽器訪問。具體請參考《如何在Kerberos下使用Solr》和《Windows Kerberos客戶端配置並訪問CDH》。
5.如果是在Solr中使用Sentry許可權管理,CDH叢集必須啟用Kerberos,同時Solr服務也需要啟用Kerberos認證。
6.一旦對solr啟用Sentry授權以後,solr使用者就是管理員,一切管理員操作都需要使用solr使用者來操作,我們在Hue中也同時要建立solr使用者與solr組,這個與我們在Hive/Impala中使用Sentry時,hive使用者是管理員原理是一樣的。