hadoop大數據平台安全基礎知識入門


概述

以 Hortonworks Data Platform (HDP) 平台為例 ,hadoop大數據平台的安全機制包括以下兩個方面:

  • 身份認證 即核實一個使用者的真實身份,一個使用者來使用大數據引擎平台,這個使用者需要表明自己是誰,即提供自己的身份證明,大數據平台需要檢驗這個證明,確定這個證明是有效的,且不是偽造的。否則,就拒絕這個使用者進入大數據引擎。
  • 授權管理 這個使用者的真實身份核實之后,需要對這個使用者的使用權限進行界定,即這個使用者在大數據平台中能夠使用什么組件,能夠獲取哪些資源,能夠對資源進行哪些操作進行管理.

身份認證

大數據平台一般使用基於 Kerberos 的身份認證機制

  • 概述
    簡單來說,大數據平台中有一個專門的認證服務器KDC,可以把它看作是戶籍派出所,可事先給所有的平台使用者(人用戶以及機器和程序用戶)發放戶籍證明,即keytab(密鑰)。之后每個用戶要使用大數據平台,就要拿着這個證明先去KDC認證,認證無誤之后,才能夠使用大數據平台引擎。

  • 操作示例

首先要對整個平台進行 kerberos 化,hdp ambari 提供了傻瓜式操作,另附文章介紹.

如上圖,kerberos化后,我們對 ambari 管理界面進行了二次開發.在這里創建本地用戶的時候,已經同步向KDC服務器注冊了該用戶的相關信息,同時生成了該用戶的keytab,點擊用戶,進入詳情頁可下載密鑰。之后該用戶來使用大數據平台(無論是命令行還是API調用還是其他什么方式),必須先攜帶keytab去KDC進行認證。這里以命令行的方式舉例,例如某個用戶需要使用hadoop去讀取hdfs上面的文件。他需要先亮明自己的身份,即執行命令:

kinit -k -t keytab路徑 用戶名 這樣之后再去執行hdfs等命令的時候才能夠認證通過,而不會報錯:

Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

授權管理

大數據平台使用基於apache ranger的授權管理。授權管理是應該是建立在身份認證之上的,試想以下,如果連身份都無法確認的話,那你的任何授權都是不可靠的(你確定你授權的這個用戶就是這個用戶嗎),你的授權管理其實是空中閣樓.

  • 概述
    ranger提供了基於資源的授權管理機制,所謂資源就是大數據平台中的各組件(例如hdfs,hive,hbase等),以及組件內的具體資源(例如hdfs的某個路徑,hive,hbase中的某個表)。某個組件資源對應於ranger中的service(服務),在單個service中創建策略就可以對這個組件的具體資源進行用戶的權限管理了.

  • 操作指南
    我們對 ambari 界面進行了二次開發,將 ranger 原生界面移植過來

如圖,以此為例, ranger 自動探測並生成平台中各個組件服務,點擊進入服務詳情

增加或者編輯策略即可對具體資源進行授權管理了。如上圖,我們授予了testranger用戶對hbase所有表的所有列的所有操作權限。如果編輯這個策略,刪除testranger這個用戶,那么這個用戶在hbase做查詢等操作的時候就會出錯:

ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user ‘testranger@EXAMPLE.COM',action: scannerOpen, tableName:test, family:f1 

另外也可以新建新的策略來管理,策略提供了細粒度的權限管理方式,詳細可參考 ranger 官網.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM