java ranger rest_Apache Ranger:Hadoop生态圈的安全管家

原标题:Apache Ranger:Hadoop生态圈的安全管家

1d9431730dfde8160c80af65ddbf184f.png

文 | 谢海红

Apache Ranger是一个支持、监控和管理整个Hadoop集群数据安全的框架,它的愿景是在Apache Hadoop生态系统中提供全面的安全性。随着Apache YARN的出现,Hadoop平台现在可以支持一个真正的数据湖体系结构。企业可以在多租户环境中运行多个工作负载,因此, Hadoop中的数据安全性需要发展。

Apache Ranger总体架构

Ranger的总体架构如下图所示,主要由三个部分构成:

AdminServer:提供REST接口来对服务、策略、用户信息等进行增删改查,同时内置了一个Web界面进行管理。

AgentPlugin:嵌入到各个Hadoop组件中,定期从AdminServer拉取策略,根据策略执行访问决策树,并且定期记录访问审计。

UserSync:定期从LDAP/File等中加载用户,上报给AdminServer,实现用户同步功能。

3b886633f0bbb5cf530d1af1226e5805.png

Apache Ranger支持组件及版本

Ranger支持的服务有HDFS、HBase、Hive、YARM、Strom、Kafka、Knox、Solr、Nifi等,但要注意各个组件的版本,官网提供的版本如下:

654121773fd21ff21d9ef29694b054bd.png

Apache Ranger权限模型

访问权限即定义”用户-资源-权限“这三者间的关系,Ranger基于策略来抽象这种关系,进而延伸出自己的权限模型。为了便于理解,我简化了模型,用以下表达式来描述它:

Policy = Service + List+ AllowACL + DenyACL

AllowACL =List allow + List allowException

DenyACL =List deny + List denyException

AccessItem =List + List

接下来从”用户-资源-权限”的角度来详解上述表达:

用户:由User或Group来表达;User代表访问资源的用户,Group代表用户所属的用户组。

资源:由(Service,Policy)二元组来表达;一条Policy唯一对应一个Service,但一个Service可以创建对应多个Policy。

权限:由(AllowACL,DenyACL)二元组来表达,用户在AllowACL中表示允许执行,而DenyACL中表示拒绝执行。

下表列出了几种常见系统的模型实体枚举值:

4ab85c99812085a1af3904a3b6641f15.png

举个例子,现在一条Policy有(allow,allowException, deny, denyException)这么四组AccessItem,那么判断用户最终权限的决策过程是怎样的?

总体来说,这四组AccessItem的作用优先级由高到低依次是:

denyException > deny > allowException > allow

用户访问决策树可以用以下流程图来描述:

e27310a27e9ed05766660d45dbf4fdb9.png

Apache Ranger系统插件

前文已经提到,系统插件主要负责三件事:

定期从AdminServer拉取策略

根据策略执行访问决策树

定期记录访问审计

以上执行逻辑是通用的,可由所有系统插件引用,因此剩下的问题是如何把这些逻辑嵌入到各个系统的访问决策流程中去。目前Ranger里有两种做法:

实现可扩展接口:多数的系统在实现时都有考虑功能扩展性的问题,一般会为核心的模块暴露出可扩展的接口,访问控制模块也不例外。Ranger通过实现访问控制接口,将自己的逻辑嵌入各个系统。

代码注入:不排除有少数系统没有将访问控制模块暴露出扩展点,这个时候Ranger依赖Java代码注入机制(java.lang.instrument)来实现逻辑嵌入。以HDFS插件为例,Ranger利用ClassFileTransformer,直接修改HDFS访问控制类FSPermissionChecker的ClassFile,将checkPermission方法替换成Ranger的自定义实现。

总结

随着Hadoop生态圈进军企业级市场,数据安全逐渐成为关注焦点。Ranger作为标准化的访问控制层,引入统一的权限模型与管理界面,极大地简化了数据权限的管理。目前,Ranger已正式成为Apache顶级开源项目,在功能性与稳定性上也越来越完善,以便其能覆盖更多的系统,一统江湖成为标准。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值