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插件都是由组件侧自身的鉴权接口扩展而来,用户在Ranger 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来提供服务。