目录
一、Ranger 介绍
1、Ranger概念
Ranger 使用了一种基于属性的方法定义和强制实施安全策略。当与 Apache Hadoop 的数据治理解决方案和元数据仓储组件Apache Atlas一起使用时,它可以定义一种基于标签的安全服务,通过使用标签对文件和数据资产进行分类,并控制用户和用户组对一系列标签的访问。
Ranger 的总体架构如下图所示,主要由以下三个组件构成:
- AdminServer: 以RESTFUL形式提供策略的增删改查接口,同时内置一个Web管理页面。
- AgentPlugin: 嵌入到各系统执行流程中,定期从AdminServer拉取策略,根据策略执行访问决策树,并且定期记录访问审计。插件的实现原理将在后文详细介绍。
- UserSync: 定期从LDAP/File中加载用户,上报给AdminServer。
ranger针对组件内的权限 ,比如HDFS的读写执行,Hive和Hbase的读写更新,yarn的队列资源使用权、任务提交权限,目前ranger支持 hdfs,hive,hbase,kafka,yarn等组件,针对于组和用户对资源的访问权限进行细粒度的控制。
- user: Ranger自己管理的用户,分为 internal 和 external,前者为Ranger自己的用户,例如admin;后者为linux或者LDAP的用户,在操作系统/LDAP里新增用户后会同步到Ranger。
- group: Ranger自己管理的用户组,也有内外之分,与user类似,设置与LDAP同步后会将LDAP的组同步过来,该组为外部组;如果是Ranger自己的用户新增的组,则为internal组。
- Service: 即授权管理服务,每个组件可以设置多个Service。
- Policy: 每个Service中可以有多条Policy,组件不同,Policy授权模型不同。
Ranger主要提供如下特性:
- 基于策略(Policy-based)的访问权限模型
- 通用的策略同步与决策逻辑,方便控制插件的扩展接入
- 内置常见系统(如HDFS、YARN、HBase等12个)的控制插件,且可扩展
- 内置基于LDAP、File、Unix的用户同步机制,且可扩展
- 统一的中心化的管理界面,包括策略管理、审计查看、插件管理等
2、权限模型
访问权限无非是定义了”用户-资源-权限“这三者间的关系,Ranger基于策略来抽象这种关系,进而延伸出自己的权限模型。”用户-资源-权限”的含义详解:
- 用户:由User或Group来表达,User代表访问资源的用户,Group代表用户所属的用户组。
- 资源:由Resource来表达,不同的组件对应的业务资源是不一样的,比如HDFS的File Path,HBase的Table。
- 权限:由(AllowACL, DenyACL)来表达,类似白名单和黑名单机制,AllowACL用来描述允许访问的情况,DenyACL用来描述拒绝访问的情况。不同的组件对应的权限也是不一样的。
二、Ranger Aduit审计功能模块详解
1、Ambari 中 Ranger config
1.Ranger Admin
说明:Ranger Amin 使用 mysql 存放 admin 的元数据信息
2.Ranger User Info
说明:下图是Ambari 中 Ranger的 config之 Ranger user info , Ranger 支持从UNIX、FILE、LDAP同步用户信息,LINUX平台创建好用户后会同步到Ranger,默认是从操作系统同步的,反之 Ranger创建的用户不能同步到操作系统。
3.Ranger Plugin
4.Ranger Audit
Ranger Audit: Ranger 审计功能 , Ranger 的审计日志存储在HDFS的路径。审计功能模块可以帮助我们更好的管理集群组件,例如 HDFS、HBase、Hive 等数据资源的访问在使用 Ranger 控制的同时也可以很好地监控、查询用户的历史操作,做到有证可查。
Audit log 在 HDFS中的存储路径
5.Ranger Tagsync
Aparche Atlas 数据治理项目,该项目用于管理共享元数据、数据分级、审计、安全性以及数据保护等方面,努力与Apache Ranger整合,用于数据权限控制策略。
2、Ranger Audit 功能模块介绍
1.Audit Access
说明:对 kangll 用户创建的 policy ,在没有创建policy 之前 kangll 用户对集群组件的操作也是被记录的,不过权限不允许而已。Kangll 用户在 Hive中 执行了查询操作,而且这个权限的执行结果是被允许的。
说明:Kangll 用户在 Ranger 审计功能模块的操作记录,针对kangll 用户对 HDFS 下的 /kangll 文件夹的写操作是被允许的。
2.Audit Admin
说明:Ranger Admin 用户的 操作记录,就是 我们 登录时候所用的用户
3.Audit Login Sessions
4.Audit Plugins
5.Audit Plugin Status
6.Audit User Sync
图中可以看到,Ranger 默认每分钟 会从 默认的 Unix 操作系统同步 用户,拿到这个用户 ,这个用户对集群组件的操作就可以在 Access 中 看到了。
如果使用 Ambari 将Ranger 安装后 默认是不需要集成的,只需要重启ranger,然后配置各组件权限规则就行。
参考链接:https://www.jianshu.com/p/d0bf6e77bb8f