Ranger基本原理
Apache Ranger提供一个集中式安全管理框架,提供统一授权和统一审计能力。它可以对整个Hadoop生态中如HDFS、Hive、HBase、Kafka、Storm等进行细粒度的数据访问控制。用户可以利用Ranger提供的前端WebUI控制台通过配置相关策略来控制用户对这些组件的访问权限 。
Ranger架构如图1所示
| 
       名称  | 
     
       描述  | 
    
|---|---|
| 
       RangerAdmin  | 
     
       Ranger的管理角色,拥有策略管理、用户管理、审计管理等功能,提供WebUI和RestFul接口。  | 
    
| 
       UserSync  | 
     
       负责周期从外部同步用户和用户组信息并写入RangerAdmin中。  | 
    
| 
       TagSync  | 
     
       负责周期从外部Atlas服务同步标签信息并写入RangerAdmin中。  | 
    
Ranger原理
- 组件Ranger插件
    
Ranger为各组件提供了基于PBAC(Policy-Based Access Control)的权限管理插件,用于替换组件自身原本的鉴权插件。Ranger插件都是由组件侧自身的鉴权接口扩展而来,用户在Ragner WebUI上对指定service设置权限策略,Ranger插件会定期从RangerAdmin处更新策略并缓存在组件本地文件,当有客户端请求需要进行鉴权时,Ranger插件会对请求中携带的用户在策略中进行匹配,随后返回接受或拒绝。
 - UserSync用户同步
    
UserSync周期性从LDAP/Unix中同步数据到RangerAdmin中,其中安全模式向从LDAP中同步,非安全模式从Unix中同步。同步模式默认采取增量模式,每次同步周期UserSync只会更新新增或者变更的用户和用户组,当用户或者用户组被删除时,UserSync不会同步该变更到RangerAdmin,即RangerAdmin中不会同步删除。为了提高性能,UserSync也不会同步没有所属用户的用户组到RangerAdmin中。
 - 统一审计
 - 高可靠性
    
Ranger支持RangerAdmin双主,两个RangerAdmin同时提供服务,任意一个RangerAdmin故障不会影响Ranger的功能。
 - 高性能
    
Ranger提供Load-Balance能力,通过浏览器访问Ranger WebUI时Load-Balance会自动选择当前负载较小的RangerAdmin来提供服务。
 
    
      