更新时间:2024-09-30 GMT+08:00

Ranger基本原理

Apache Ranger提供一个集中式安全管理框架,提供统一授权和统一审计能力。它可以对整个Hadoop生态中如HDFS、Hive、HBase、Kafka、Storm等进行细粒度的数据访问控制。用户可以利用Ranger提供的前端WebUI控制台通过配置相关策略来控制用户对这些组件的访问权限 。

Ranger架构如图1所示

图1 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插件支持记录审计日志,当前审计日志存储介质支持本地文件。

  • 高可靠性

    Ranger支持RangerAdmin双主,两个RangerAdmin同时提供服务,任意一个RangerAdmin故障不会影响Ranger的功能。

  • 高性能

    Ranger提供Load-Balance能力,通过浏览器访问Ranger WebUI时Load-Balance会自动选择当前负载较小的RangerAdmin来提供服务。