编辑推荐: |
本文首先介绍Ranger的背景,
Ranger的基本架构以及基本组件,最后介绍权限模型和实现,权限管理的流程,希望对您的学习有所帮助。
本文来自DBAplus社群,由Alice编辑、推荐。 |
|
一、背景
大数据最基本就是数据以及用于计算的资源,需要将相应的数据和资源开放给对应的用户使用,以防被窃取、被破坏造成损失,这个就涉及大数据安全。
主流的大数据安全组件Kerberos由于使用临时的用户验证机制不适用用户多的情况、Sentry只适用少部分的Hadoop生态组件应用场景少。
Apache Ranger作为标准化的访问控制层,引入统一的权限模型与管理界面,极大地简化了数据权限的管理,统一的权限管理降低了学习成本,非常易于使用。
Apache Ranger:一个用于在整个Hadoop平台上使用,用来监视和管理全面的数据安全性的框架。主要是提供一个集中式安全管理框架,
并解决授权和审计问题。
特点:集中式安全管理,可在Web UI或使用REST API管理所有与安全相关的任务;基于策略(Policy-Based)的访问权限模型
,易于使用;支持大部分Hadoop生态组件;支持审计(审计主要是日志审计,主要记录各个组件资料的访问信息,也就是从各个组件日志中抽到相应的登录访问信息
);支持用户与LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)、Linux系统的用户同步
支持的组件:HDFS;YARN;HBase;Hive;Solr;Storm;Sqoop;Kafka;Atlas;Nifi;Knox等。其中HDFS主要是对文件访问权限进行管理,HBase对应表、列族和列的权限管理,Hive对应表的数据库、表和列的权限管理、Atlas对应类别、元数据实体、类型、输入/输出的权限管理。
优点:提供了细粒度级(例如hive列级别);基于访问策略的权限模型;权限控制插件式,统一方便的策略管理;支持审计日志,可记录各种操作的审计日志,提供统一的查询接口和界面;丰富的Hadoop生态组件支持;支持与Kerberos集成;提供REST
API可供二次开发
二、基本架构
用户可通过Ranger提供的Web界面以Admin权限登录添加权限控制Service服务,在Service中添加授权的策略Policy,系统将Policy存入MySQL数据库中,并在本地完成备份,当用户去请求被授权的组件时,对应的组件plugin插件回去admin拉取policy并对应策略内容进行授权管理,符合权限允许操作否则拒绝用户请求;同时整个过程(用户登录、创建服务策略、插件授权管理)都产生审计日志,并存储在Solr中。
三、基本组件
Ranger中主要组件:Ranger Admin、Ranger UserSync、Plugin
Ranger Admin:
职责:提供对策略的增删改查操作,并提供WebUI和RestAPI接口
组成:Web UI、REST API、数据库
作用:接收UserSync进程传过来的用户、用户组信息, 并将它们保存到MySql数据库中。(这些用户信息在配置权限策略的时候需要使用,即分配策略的对象);提供创建policy的接口;提供外部REST消息的处理接口(界面上的一些CURD操作)
Ranger UserSync:
职责:定期从LDAP/Unix/File中加载用户,并同步给Ranger Admin(Ranger的用户管理并不同步,即在系统添加的用户并不能立刻同步到ranger中)
Plugin
职责:以插件的形式集成到各组件中,定期从Ranger Admin拉取策略,并根据用户访问执行策略,且定期将审计日志记录到Solr。实际上是个线程,会去读取策略的配置文件
具体的实现接口见下表
其余组件:Ranger Tagsyncs——定期从标签源(通常是Atlas),同步标签信息;Ranger
KMS——Ranger Key Management Service,基于Hadoop KMS 封装的秘钥管理服务,支持HDFS静态数据加密。
四、权限模型及实现
权限模型:定义“用户-权限-资源”,其中用户使用User/group表达,User表示访问资源的用户,Group表示User所属的用户组;权限主要由(AllowACL,
DenyACL)来表达(Access Control List),类似白名单&黑名单,AllowACL用来描述允许访问的情况,DenyACL用来描述拒绝访问的情况,不同的组件对应的权限不一样;资源对于不同组件对应不同,具体见下表。
权限实现:
Admin负责指定权限策略分配相应的资源给相应的用户或组,存储在MySQL中;
Plugin负责定期从Ranger Admin拉取策略并根据策略执行访问决策树完成授权管理,最后实时记录访问审计(实际安装部署plugin时通过hook方式调用各个组件服务达到权限管理
);
Plugin安装的节点根据不同的组件有所不同,具体见下表,
策略优先级:黑名单优先于白名单;黑名单排除优先于黑名单;白名单排除优先于白名单;
五、权限管理流程
以Ranger和HDFS集成为例,
1.Ranger Admin创建服务Service(相当于web服务中的service封装接口)
2.Ranger Admin通过服务Service创建策略Policy(存储于mysql数据库中)
3.HDFS Plugin(提前下载安装部署完毕的Plugin)插件拉取策略
4.HDFS Plugin插件对用户访问请求鉴权(权限类型在mysql数据库存储)
5.HDFS Plugin插件记录审计日志Audit(存储在Solr中)
6.Ranger Admin查看审计日志Audit
|