星環大數據安全組件Guardian與hadoop自帶的安全組件區別

在進行講解以前,先帶你們學習下hadoop關於hdfs本身的安全如何實現的---------------------------shell

名詞:數據庫

ACL-訪問控制列表(Access Control List,ACL安全

ARBAC-基於角色的權限訪問控制(Role-Based Access Control)服務器

全部安全體系的瞭解,大數據平臺安全體系的四個層次提及:外圍安全、數據安全、訪問安全以及訪問行爲監控,以下圖所示網絡

  • 外圍安全技術多指傳統意義上提到的網絡安全技術,如防火牆,登錄認證等;
  • 數據安全從狹義上說包括對用戶數據的加解密,又可細分爲存儲加密和傳輸加密;還包括用戶數據的脫敏,脫敏能夠看作「輕量級」的數據加密。如某人的生日爲「2014-12-12」,脫敏後的數據爲「2014-x-x」。數據的輪廓依然存在,但已沒法精肯定位數值。脫敏的程度越高數據可辨認度越低。上述的例子還可脫敏爲「x-x-x」,至關於徹底對外屏蔽該信息。
  • 訪問安全主要是對用戶的受權進行管理。Linux/Unix系統中用戶-組的讀、寫、執行權限管理堪稱其中的經典模型。HDFS對這一律念進行了擴充,造成了更加完備的ACL體系;另外隨着大數據的應用的普及和深刻,文件內部數據訪問權限差別化的需求也變得愈來愈重要;
  • 訪問行爲監控多指記錄用戶對系統的訪問行爲:如查看哪一個文件;運行了哪些SQL查詢;訪問行爲監控一方面爲了進行實時報警,迅速處置非法或者危險的訪問行爲;另外一方面爲了過後調查取證,從長期的數據訪問行爲中分析定位特定的目的。

在這四個安全的層次中,第三層同上層業務的關係最爲直接:應用程序的多租戶,分權限訪問控制都直接依賴這一層的技術實現。架構

 

HDFS的權限管理

普通Hadoop集羣中的各個組件一般使用不一樣模型進行權限管理。框架

  • 例如HDFS使用相似POSIX ACL的權限模型,用HDFS shell受權;
  • Hive使用基於角色的RBAC模型,用SQL受權;
  • 而HBase使用的是基於組的RBAC權限模型,使用HBase shell受權。

這就意味着爲三個組件受權須要登陸三個系統,使用三種不一樣的模型受權,爲權限運維形成不小的難度。基本上就是訪問安全,並無其餘安全的防禦。。。。運維

問題背景:ide

Hadoop在企業中普遍地應用,愈來愈多的業務場景要求大數據訪問控制的粒度也再也不侷限在文件級別,而是更加細緻地約束文件內部的數據哪些只能被讀,哪些徹底不容許被訪問。對於基於SQL的大數據引擎來講,數據訪問不止要到表粒度,更要精確到行列級別。函數

CDH的安全組件

安全組件的來源背景:

Hive是早期將高級查詢語言SQL引入Hadoop平臺的引擎之一,早期的Hive服務器進程被稱做Hiveserver1;Hiveserver1既不支持處理並行的多個鏈接,又不支持訪問受權控制;後來這兩個問題在Hiveserver2上被解決,Hiveserver2可以使用grant/revoke語句來限制用戶對數據庫、表、視圖的訪問權限,行列權限的控制是經過生成視圖來實現的;但Hiveserver2的受權管理體系被認爲存在問題,那就是任何經過認證登錄的用戶都可以爲本身增長對任何資源的訪問權限。也就是說Hiveserver2提供的不是一種安全的受權體系,Hiveserver2的受權體系是爲防止正經常使用戶誤操做而提供保障機制;不是爲保護敏感數據的安全性而設計的。然而這些更多的是某些公司的說辭,事實上Hiveserver2自身的安全體系也在逐步完善,上述問題也在快速修復中。

但受權管理其實不止是Hive須要,其餘的查詢引擎也迫切須要這些技術來完善和規範應用程序對數據的訪問。對於細粒度受權管理的實現,很大一部分功能在各引擎之間是能夠公用的,所以獨立實現的受權管理工具是很是必要的。

在這樣的背景下,Cloudera公司的一些開發者利用Hiveserver2中現使用價值的受權管理工具Sentry,下圖是Sentry與Hiveserver2中的受權管理模型的對比:

Sentry的不少基本模型和設計思路都來源於Hiveserver2,但在其基礎之上增強了RBAC的概念。在Sentry中,所相應的權限。權限à角色à用戶組à用戶,這一條線的映射關係在Sentry中顯得尤其清晰,這條線的映射顯示了一條權限如何能最後被一個用戶所擁Hadoop自身的用戶-組映射來實現的。集中配置,易於修改的好處。

Sentry將Hiveserver2中支持的數據對象從數據庫/表/視圖擴展到了服務器,URI以及列粒度。雖然列的權限控制能夠用視圖來實現,可是對於多用戶,表數量巨大的狀況,視圖的方法會使得給視圖命名變得異常複雜;並且用戶原先寫的針對原表的查詢語句,這時就沒法直接使用,由於視圖的名字可能與原表徹底不一樣。

目前Sentry1.4可以支持的受權級別還侷限於SELECT,INSERT,ALL這三個級別,但後續版本中已經可以支持到與Hiveserver2現三個重要的組件:一是Binding;二是Policy Engine;三是Policy Provider。

Binding實現了對不一樣的查詢引擎受權,Sentry將本身的Hook函數插入到各SQL引擎的編譯、執行的不一樣階段。這些Hook函數起兩大做用:一是起過濾器的做用,只放行具引擎的受權信息也存儲在由Sentry設定的統一的數據庫中。這樣所引擎的權限就實現了集中管理。

Policy Engine斷定輸入的權限要求與已保存的權限描述是否匹配,Policy Provider負責從文件或者數據庫中讀取出原先設定的訪問權限。Policy Engine以及Policy Provider其實對於任何受權體系來講都是必須的,所以是公共模塊,後續還可服務於別的查詢引擎。

Transwarp Guardian保障HDFS安全

Guardian 5.0在原有安全解決方案的基礎上提供了更加完整的功能以及方便的操做,包括用戶認證、受權、配額管理以及資源控制。用戶認證經過LDAP以及KERBEROS協議,確保只有通過身份甄別的用戶才能訪問系統,受權保證只有被賦予權限的用戶才能夠訪問系統資源,配額管理與資源負責控制用戶使用的資源大小,三個部分一同保證TDH平臺大數據安全。

  • Guardian 5.0的框架共分爲四層:

  • 底層:ApacheDS
  • Guardian底層使用改進的ApacheDS方案,使用同一套用戶統一LDAP/Kerberos認證方式,避免OpenLDAP使用Kerberos認證,從而加速LDAP認證效率。另外,Guardian優化了ApacheDS原生的數據存儲,使讀寫效率提高10倍以上。同時還提供了Master-Slave的HA方案,保證用戶數據安全和可靠性。

  • 第二層:Guardian Server
  • 架構第二層是獨立的服務Guardian Server,實現完整的ARBAC模型支持,提供了用戶友好的Web UI和密碼策略等功能支持。Guardian Server對用戶認證受權進行了統一化,從Web服務到Hadoop底層使用同一套用戶,同一套受權機制;同時開放了LDAP接口、REST API和LoginService,供第三方應用經過Guardian用戶進行認證和受權的整合。

  • 第三層:Plugins
  • 第三層使用插件的形式,爲TDH各個組件提供認證、受權、組映射以及配額管理,使得TDH組件可使用統一的用戶、組和權限管理模型。

  • 頂層:服務應用
  • 架構頂層是與Guardian對接的各類TDH服務,受到Guardian的安全保護。

  • 在Guardian的保護下,全部的應用服務均可以藉助Kerberos實現數據加密,或者經過LDAP實現身份驗證。各雲產品和組件獲得租戶級別的資源管理,其多租戶資源管理模塊能夠按照租戶的方式管理資源,並經過一個圖形化工具爲用戶提供權限配置以及資源配置接口。同時實現HDFS和全部數據庫對象的細粒度訪問控制。

 

功能優點

  • 加強的ARBAC模型
  • Guardian引入了加強後的ARBAC(Administrative Role Based Access Control)模型,統一了各個組件的權限管理,使用戶使用統一的Web UI或者REST API進行受權,同時也兼容了SQL、HBase shell受權方式,大幅度簡化了運維。

  • 精細的多粒度權限管理
  • Guardian爲各個組件提供了完整統一的RBAC的權限管理,包括HDFS、YARN、Inceptor、Hyperbase、Workflow以及Midas服務;支持服務管理員的動態設置,實現服務管理員職責的精細劃分,有很高的靈活度和可操做性;對於特定的服務,提供了一些粒度的權限管理,同時提供比表級更細粒度的權限管理,如行級權限管理,知足用戶各個層面的權限管理需求。

  • 智能的資源控制
  • Guardian配合Inceptor Scheduler提供了對於Inceptor細粒度的資源控制,能夠針對用戶的不一樣權限和優先級,設置合理的資源分配方式。資源管理配置界面支持設置用戶容許提交的隊列,每一個隊列可使用的CPU數量,隊列的權重,以及用戶可提交的SQL數量上限。同時對HDFS配額、Yarn隊列、Inceptor數據庫及表的配額以及Discover用戶配額提供配置接口。

  • 運維簡化
  • Guardian實現了標準的LDAP和KERBEROS認證協議,並將全部組件的權限信息都統一集中存儲在ApacheDS,使得即便服務處於異常狀態甚相當閉,用戶仍然能夠正常的對服務設置訪問權限和配額,成功實現了資源管理與具體的服務之間的解耦。Guardian 5.0還提供了友好的日誌系統和報錯信息,便於下降運維難度。

相關文章
相關標籤/搜索