大數據平臺安全策略(Kerberos,Sentry,Ranger)

近些年來大數據所用到的的安全方案主要有如下三種

  • Kerberos(業界常用的服務認證)
  • Sentry(Cloudera選用的方案,cdh版本集成)
  • Ranger(Hortonworks選用的方案,hdp發行版集成)

Kerberos

Kerberos只能控制你是否能訪問服務,不能控制到很細的粒度
比如說,它可以控制你訪問hive與否,但是對於hive的表沒有用戶級別的權限控制沒有實現(需要集成LDAP一起使用纔行)

kerberos的主要構成部分爲Client,KDC,Service

構成 作用
KDC Kerberos的服務端程序,用來驗證各個模塊
Client 需要訪問服務的用戶,KDC與Service會對用戶的身份進行驗證
Service 集成了Kerberos的服務,如Hbase,Hdfs,Hive等

Kerberos協議過程

  • Client向KDC申請TGT
  • Client通過獲得的TGT向KDC申請用於訪問的Service的Ticket
  • Client用KDC返回的Ticket訪問Service

可以用遊樂園的思想來類比:

將KDC比作遊樂園,Client比作遊客,Service比作遊樂園的各種活動項目
首先遊客(Client)進入遊樂園(KDC)需要遊樂園的門票(TGT),玩耍各類項目需要對應項目的票據(ticket),比如玩耍摩天輪(Hbase)需要摩天輪的專屬票據(ticket)

優點:

  • 服務認證,防止broker datanode regionserver等組件冒充加入集羣
  • 解決了服務端到服務端的認證,也解決了客戶端到服務端的認證

缺點

  • kerberos爲了安全性使用臨時ticket,認證信息會失效,用戶多的情況下重新認證繁瑣
  • kerberos只能控制你訪問或者拒絕訪問一個服務,不能控制到很細的粒度,比如hdfs的某一個路徑,hive的某一個表,對用戶級別上的認證並沒有實現(需要配合LDAP)

Apache Sentry

Apache Sentry是Cloudera公司發佈的一個Hadoop安全開源組件,它提供了細粒度級、基於角色的授權.

優點:

  • Sentry支持細粒度的hdfs元數據訪問控制,對hive支持列級別的訪問控制
  • Sentry通過基於角色的授權簡化了管理,將訪問同一數據集的不同特權級別授予多個角色
  • Sentry提供了一個統一平臺方便管理
  • Sentry支持集成Kerberos

缺點:

  • 組件只支持hive,hdfs,impala 不支持hbase,yarn,kafka,storm等

Apache Ranger

Apache Ranger是Hortonworks公司發佈的一個Hadoop安全開源組件

優點:

  • 提供了細粒度級(hive列級別)
  • 基於訪問策略的權限模型
  • 權限控制插件式,統一方便的策略管理
  • 支持審計日誌,可以記錄各種操作的審計日誌,提供統一的查詢接口和界面
  • 豐富的組件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM)
  • 支持和kerberos的集成
  • 提供了Rest接口供二次開發

選擇Ranger的原因
多組件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM),基本覆蓋我們現有技術棧的組件
支持審計日誌,可以很好的查找到哪個用戶在哪臺機器上提交的任務明細,方便問題排查反饋
擁有自己的用戶體系,可以去除kerberos用戶體系,方便和其他系統集成,同時提供各類接口可以調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章