Ranger基本原理
在大数据集群中,HDFS、Hive、HBase、Kafka等多个组件各自维护独立的权限管理机制,管理员需要分别在各个组件中配置访问控制策略,不仅管理分散、配置繁琐,且难以实现统一的审计追踪。当集群规模扩大、用户和组件数量增多时,分散的权限管理方式效率低下,且容易出现策略不一致导致的安全风险。那么,如何对整个Hadoop生态进行集中式的细粒度权限管控?
Apache Ranger提供一个集中式安全管理框架,提供统一授权和统一审计能力。它可以对整个Hadoop生态中如HDFS、Hive、HBase、Kafka、Storm等进行细粒度的数据访问控制。用户可以利用Ranger提供的前端WebUI控制台通过配置相关策略来控制用户对这些组件的访问权限 。
更多关于Ranger组件操作指导,请参考使用Ranger。
Ranger架构如图1所示
| 名称 | 描述 |
|---|---|
| RangerAdmin | Ranger的管理角色,拥有策略管理、用户管理、审计管理等功能,提供WebUI和RestFul接口。 |
| UserSync | 负责周期从外部同步用户和用户组信息并写入RangerAdmin中。 |
| TagSync | 负责周期从外部Atlas服务同步标签信息并写入RangerAdmin中。 |
Ranger采用“管理端+插件”的架构模式。RangerAdmin作为管理端,集中存储和管理所有组件的安全策略、用户信息和审计日志,并通过WebUI和RestFul接口对外提供服务。各组件(如HDFS、Hive、HBase等)侧部署Ranger插件,插件定期从RangerAdmin拉取最新的策略并缓存在本地。UserSync组件负责从外部用户目录(LDAP/Unix)同步用户信息到RangerAdmin,TagSync组件负责从Atlas服务同步标签信息到RangerAdmin,实现基于标签的权限控制。当客户端请求访问组件资源时,组件侧的Ranger插件使用本地缓存的策略对请求进行鉴权,并将审计日志记录到本地文件。
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插件在每次鉴权时自动记录审计日志,包括访问者用户名、访问资源路径、访问操作类型(如读、写、执行)、鉴权结果(允许/拒绝)、访问时间戳、客户端IP地址等信息。审计日志默认存储在组件本地文件中。管理员可通过Ranger WebUI的“Audit”页面集中查看所有组件的审计记录,支持按用户、资源、时间范围等条件检索。
- 高可靠性
Ranger支持RangerAdmin双主,两个RangerAdmin同时提供服务,任意一个RangerAdmin故障不会影响Ranger的功能。双主之间通过共享数据库(存储策略和审计数据)实现数据一致性,Ranger插件在拉取策略时会自动选择可用的RangerAdmin节点,当主节点不可达时自动切换到备用节点,无需人工干预。
- 高性能
Ranger提供Load-Balance能力,通过浏览器访问Ranger WebUI时Load-Balance会自动选择当前负载较小的RangerAdmin来提供服务。Ranger插件采用本地策略缓存机制,鉴权时直接使用本地缓存进行策略匹配,无需每次请求都访问RangerAdmin,大幅降低鉴权延迟和对RangerAdmin的访问压力。策略缓存定期刷新,确保策略更新的及时性。
相关文档
- 了解Ranger组件的操作指导,请参考使用Ranger。
- 了解MRS集群安全模式的整体架构,请参考MRS集群Kerberos认证介绍。
- 了解如何在Ranger中配置组件权限策略,请参考配置Ranger权限策略。
- 了解如何查看Ranger审计日志,请参考查看Ranger审计信息。
