hadoop安全認證服務

2021-08-01 04:52:21 字數 2614 閱讀 8964

cdh版本的hadoop在對資料安全上的處理採用了kerberos+sentry的結構。

kerberos主要負責平台使用者的許可權管理,sentry則負責資料的許可權管理。

下面我們來依次了解一下:

kerberos包含乙個中心節點和若干從節點,所有節點的kerberos認證資訊都要與中心節點的規則配置檔案/etc/krb5.conf保持一致。安全認證均需通過中心節點,配置了安全認證的使用者可以登入到集群內的 機器。

kerberos的配置檔案有兩個:

1、/var/kerberos/krb5kdc/kdc.conf:包括kdc的配置資訊。預設放在 /usr/local/var/krb5kdc。或者通過覆蓋krb5_kdc_profile環境變數修改配置檔案位置。

2、/etc/krb5.conf:包含kerberos的配置資訊

kerberos的管理物件稱為principal(規則), 與hdfs中的使用者一一對應。一般我們將hdfs設定為principal的管理員,它可以建立刪除其他的principal,還可以生成其他成員的keytab。keytab是每個principal對應的金鑰檔案,當kerberos認證使用keytab時,可以不需要輸入密碼,類似於ssh的信任機制。

當我們配置kerberos的時候,系統會預設生成使用者,格式一般為【使用者名稱/hostname@domain_name】,一般情況下我們使用自己定義的使用者,不要對系統生成的使用者加以修改。

輸入kadmin.local 進入kerberos的互動命令列。

生成keytab: xst –k testuser.keytab [email protected],將對應的keytab拷貝至其他位置或伺服器,則相應的節點則可以通過testuser的principal連線進hdfs.

登入到管理員賬戶: 如果在本機上,可以通過kadmin.local直接登入。其它機器的,先使用kinit進行驗證。

kadmin.local  

kinit admin/adminkadmin

增刪改查賬戶:在管理員的狀態下使用addprinc,delprinc,modprinc,listprincs命令。使用?可以列出所有的命令。

kamdin:addprinc -randkey hdfs/hadoop1kamdin:delprinc hdfs/hadoop1kamdin:listprincs命令

生成keytab:使用xst命令或者ktadd命令

kadmin:xst -k /***/***/kerberos.keytab hdfs/hadoop1

建立乙個新的principal: addprinc [email protected],並輸入密碼

使用者操作

檢視當前的認證使用者:klist

認證使用者:kinit -kt /xx/xx/kerberos.keytab hdfs/hadoop1

刪除當前的認證的快取: kdestroy

apache sentry的目標是實現授權管理,它是乙個策略引擎,被資料處理工具用來驗證訪問許可權。它也是乙個高度擴充套件的模組,可以支援任何的資料模型。當前,它支援apache hive和cloudera impala的關係資料模型,對hue的資料許可權控制也有應用。

sentry的管理物件有三個,資料庫,角色,和組。資料庫是在hive中建立的資料庫,角色在impala中建立,而組是作業系統的使用者組。

sentry的許可權管理操作,都通過impala語句完成。只有啟動了sentry服務,impala服務才能正常執行。

使用impala-shell進入互動終端:

show roles列出所有的角色

show databases列出所有的資料庫

create role test_role建立角色

drop role test_role刪除角色

可以直接輸入show命令會提示可以跟接的關鍵字

grant all on database ana_clientact to role admin_role 將乙個資料庫賦權給乙個角色

revoke all on database from role admin_role取消許可權

如果資料庫中的是外部表,需要同時給角色賦予uri許可權:

grant all on uri 'hdfs:' to role admin_role

列出某角色的許可權:show grant role admin_role

將角色賦給乙個組:grant role admin_role to group hive

完成以上操作以後,使用者組即具有了相應資料庫的操作許可權。此時需要執行invalidate metadata操作,才會生效。

當乙個新的作業系統使用者加入這個使用者組,使用者即具有對應的資料庫許可權。反之,將使用者從這個組中去掉,使用者對資料庫的操作許可權即消失。

新建使用者組時要保證集群內組和使用者保持一致。

在hue中配置許可權

在hue中,使用者的許可權是分為兩個層次實現的,乙個層次是hue平台各模組的許可權,這個通過hue中組和許可權實現的,另乙個層次是hue訪問hive,impala資料庫的許可權,這個和sentry是統一的,hue中的使用者和作業系統中的使用者一一對映,hue通過尋找相同使用者名稱的作業系統使用者來確定對應的sentry許可權。

這裡需要注意一點,hue中的組和作業系統的組沒有關係,hue中的組只繫結hue平台自己的許可權。

微服務安全認證概覽

cors 跨域資源共享 springsecurity 服務安全 組成作用 內容示例 header 頭 記錄令牌型別 簽名的演算法等 payload 有效載荷 攜帶一些使用者資訊 signature 簽名 防止token被篡改 確保安全性 計算出來的簽名,乙個字串 token base64 heade...

Eureka安全認證

註冊中心的管理介面以及服務註冊時,沒有任何認證機制,安全性比較差,如果其它服務惡意註冊乙個同名服務,但是實現不同,可能就有風險了,可以參考下面的配置改進 首先在新增springsecurity依賴 org.springframework.cloud spring cloud starter eure...

cxf安全認證

我們在使用web service的過程中,很多情況是需要對web service請求做認證的,特別涉及到外部系統的呼叫,那麼cxf 的認證就顯得的特別的重要。cxf的認證大致可以分為 soapheader認證,ws security 校驗等等。a cxf中的soapheader認證。基本的原理 客戶...