Ranger學習(一)—— 基礎概念

參考鏈接

1. Ranger架構分析:https://www.jianshu.com/p/d0bf6e77bb8f

2. 用戶指南:https://cwiki.apache.org/confluence/display/RANGER/Apache+Ranger+0.5+-+User+Guide

3. Ranger原理:https://blog.csdn.net/qq475781638/article/details/90247153#2Apache_Sentry_48

一、背景

大數據最基本就是數據以及用於計算的資源,需要將相應的數據和資源開放給對應的用戶使用,以防被竊取、被破壞造成損失,這個就涉及大數據安全。 主流的大數據安全組件Kerberos由於使用臨時的用戶驗證機制不適用用戶多的情況、Sentry只適用少部分的Hadoop生態組件應用場景少。

Apache Ranger作爲標準化的訪問控制層,引入統一的權限模型與管理界面,極大地簡化了數據權限的管理,統一的權限管理降低了學習成本,非常易於使用。

Apache Ranger:一個用於在整個Hadoop平臺上使用,用來監視和管理全面的數據安全性的框架。主要是提供一個集中式安全管理框架, 並解決授權和審計問題。

特點:集中式安全管理,可在Web UI或使用REST API管理所有與安全相關的任務;基於策略(Policy-Based)的訪問權限模型 ,易於使用;支持大部分Hadoop生態組件;支持審計(審計主要是日誌審計,主要記錄各個組件資料的訪問信息,也就是從各個組件日誌中抽到相應的登錄訪問信息 );支持用戶與LDAP(Lightweight Directory Access Protocol,輕量目錄訪問協議)、Linux系統的用戶同步

支持的組件:HDFS;YARN;HBase;Hive;Solr;Storm;Sqoop;Kafka;Atlas;Nifi;Knox等。其中HDFS主要是對文件訪問權限進行管理,HBase對應表、列族和列的權限管理,Hive對應表的數據庫、表和列的權限管理、Atlas對應類別、元數據實體、類型、輸入/輸出的權限管理。

優點:提供了細粒度級(例如hive列級別);基於訪問策略的權限模型;權限控制插件式,統一方便的策略管理;支持審計日誌,可記錄各種操作的審計日誌,提供統一的查詢接口和界面;豐富的Hadoop生態組件支持;支持與Kerberos集成;提供REST API可供二次開發

二、基本架構

用戶可通過Ranger提供的Web界面以Admin權限登錄添加權限控制Service服務,在Service中添加授權的策略Policy,系統將Policy存入MySQL數據庫中,並在本地完成備份,當用戶去請求被授權的組件時,對應的組件plugin插件回去admin拉取policy並對應策略內容進行授權管理,符合權限允許操作否則拒絕用戶請求;同時整個過程(用戶登錄、創建服務策略、插件授權管理)都產生審計日誌,並存儲在Solr中。

三、基本組件

Ranger中主要組件:Ranger Admin、Ranger UserSync、Plugin

  • Ranger Admin:

職責:提供對策略的增刪改查操作,並提供WebUI和RestAPI接口

組成:Web UI、REST API、數據庫

作用:接收UserSync進程傳過來的用戶、用戶組信息, 並將它們保存到MySql數據庫中。(這些用戶信息在配置權限策略的時候需要使用,即分配策略的對象);提供創建policy的接口;提供外部REST消息的處理接口(界面上的一些CURD操作)

  • Ranger UserSync:

職責:定期從LDAP/Unix/File中加載用戶,並同步給Ranger Admin(Ranger的用戶管理並不同步,即在系統添加的用戶並不能立刻同步到ranger中)

  • Plugin

職責:以插件的形式集成到各組件中,定期從Ranger Admin拉取策略,並根據用戶訪問執行策略,且定期將審計日誌記錄到Solr。實際上是個線程,會去讀取策略的配置文件 具體的實現接口見下表

組件 使用到的組件自帶的擴展接口 Ranger實現類
HDFS org.apache.hadoop.hdfs.server.namenode.INodeAttributeProvider org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer
HBase org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor
Hive org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizerFactory org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory
Sqoop org.apache.sqoop.security.AuthorizationValidator org.apache.ranger.authorization.sqoop.authorizer.RangerSqoopAuthorizer
Solr org.apache.solr.security.AuthorizationPlugin org.apache.ranger.authorization.solr.authorizer.RangerSolrAuthorizer
Kafka kafka.security.auth.Authorizer org.apache.ranger.authorization.kafka.authorizer.RangerKafkaAuthorizer
Atlas org.apache.atlas.authorize.AtlasAuthorizer org.apache.ranger.authorization.atlas.authorizer.RangerAtlasAuthorizer

其餘組件:Ranger Tagsyncs——定期從標籤源(通常是Atlas),同步標籤信息;Ranger KMS——Ranger Key Management Service,基於Hadoop KMS 封裝的祕鑰管理服務,支持HDFS靜態數據加密。

四、權限模型及實現

權限模型:定義“用戶-權限-資源”,其中用戶使用User/group表達,User表示訪問資源的用戶,Group表示User所屬的用戶組;權限主要由(AllowACL, DenyACL)來表達(Access Control List),類似白名單&黑名單,AllowACL用來描述允許訪問的情況,DenyACL用來描述拒絕訪問的情況,不同的組件對應的權限不一樣;資源對於不同組件對應不同,具體見下表。

插件 資源 權限項
HDFS Path Read Write Execute
HBase Table,Column-family,Column Read Write Create Admin
Hive Database,Table,UDF,Column,URL Select Create Update Drop Alter Index Lock Read Write All
YARN Queue submit-app admin-queue
Solr Collection Query,Update,Others,Solr Admin
Sqoop Connector,Link,Job READ,WRITE
Kafka Topic Publish,Consume,Configure,Describe,Create,Delete,Kafka Admin
Storm Topology Submit Topology,File Upload,File Download,Kill Topology,Rebalance,Activate,Deactivate,Get Topology Conf, Get Topology,Get User Topology,Get Topology Info,Upload New Credential
Atlas Type Catagory,Type Name,Entity Type,Entity Classification,Entity ID,Atlas Service Create Type,UpdateType,Delete Type,Read Entity,Create Entity,Update Entity,Delete Entity,Read Classification,Add Classification,Update Classification,Remove Classification,Admin Export,Admin Import

權限實現:

  • Admin負責指定權限策略分配相應的資源給相應的用戶或組,存儲在MySQL中;
  • Plugin負責定期從Ranger Admin拉取策略並根據策略執行訪問決策樹完成授權管理,最後實時記錄訪問審計(實際安裝部署plugin時通過hook方式調用各個組件服務達到權限管理 );

      Plugin安裝的節點根據不同的組件有所不同,具體見下表,

組件 安裝節點
HDFS NameNode
HBase Master、RegionServer
Hive HiveServer2
Solr ALL/Cluster
YARN Resource Manager
Atlas ALL/Standalone
  • 策略優先級:黑名單優先於白名單;黑名單排除優先於黑名單;白名單排除優先於白名單;

五、權限管理流程

以Ranger和HDFS集成爲例,

  1. Ranger Admin創建服務Service(相當於web服務中的service封裝接口)

  2. Ranger Admin通過服務Service創建策略Policy(存儲於mysql數據庫中)

  3. HDFS Plugin(提前下載安裝部署完畢的Plugin)插件拉取策略

  4. HDFS Plugin插件對用戶訪問請求鑑權(權限類型在mysql數據庫存儲)

  5. HDFS Plugin插件記錄審計日誌Audit(存儲在Solr中)

  6. Ranger Admin查看審計日誌Audit

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