大数据安全管理组件-Ranger学习总结
文章目录Ranger概述Ranger简介Ranger架构Ranger概述Ranger简介Apache Ranger是大数据领域一个集中式安全管理框架,并解决授权和审计,是Hadoop生态的综合安全管理组件。对诸如HDFS、Yarn、Hive、Kafka、HBase、Storm等组件进行细粒度的权限控制,通过Ranger控制台,管理员通过配置策略来控制用户访问权限,比如,可以控制用户读取HDF...
文章目录
1.Ranger简介
- Apache Ranger是大数据领域一个集中式
安全管理框架,并解决授权和审计,是Hadoop生态的综合安全管理组件。 - 通过制定策略(policies)实现对诸如HDFS、Yarn、Hive、Kafka、HBase、Storm等组件进行细粒度的
权限控制。 - 通过Ranger控制台,管理员通过配置策略来控制用户访问权限,比如,可以控制用户读取HDFS文件权限,甚至可以控制用户对Hive某列的访问权限。
2.Ranger构成
2.1 内部依赖
| 依赖 | 描述 |
|---|---|
JDK8 |
支持RangerAdmin、RangerKMS正常执行 |
Python2.7 |
Ranger自动化安装 |
Maven3.3 |
Ranger编译环境 |
RDMS |
存储Ranger授权策略、用户/组、审核日志信息 |
Ambari Infra(Solr) 、HDFS |
(可选)存储审计日志 |
Kerberos |
(可选)认证系统 |
注: 1 建议将审计存储在Solr和HDFS中。默认情况下,这两个选项都设置为ON。Solr提供了对最新日志进行索引和搜索的功能,而HDFS则用作更持久或更长期的存储。默认情况下,Solr用于索引前30天的审计日志。
2.2 内部组件
| 组件 | 描述 |
|---|---|
Ranger Admin |
用户管理策略,提供WebUI和RestFul接口 |
Ranger UserSync |
用于从Unix系统、FILE、LDAP/AD用户/组,同步用户/组到RangerAdmin |
Ranger TagSync |
同步Atlas中的Tag信息,基于标签的权限管理,当一个用户的请求涉及到多个应用系统中的多个资源的权限时,可以通过只配置这些资源的tag方便快速的授权 |
Ranger KMS |
管理Ranger密钥信息 |

2.3 Ranger插件(version-2.0)
| 组件 | 版本 | 插件安装节点 | 资源类型 | 权限类型 |
|---|---|---|---|---|
| HDFS | 3.1.1 |
Name Node | Path | Read,Write,Execute |
| HBASE | 2.0.2 |
Master,Regional Server | Table,Column-family,Column | Read,Write,Create,Admin |
| HIVE | 3.1.0 |
HiveServer2 | database,table,Column | select,update,Create,Drop,Alter,Index,Lock,All, Read,Write,ReplAdmin,Service Admin,Temporary UDF Admin,Refresh |
| YARN | 3.1.3 |
Resource Manager | Queue | submit-app,admin-queue |
| KNOX | 1.2.0 |
Knox gateway | ||
| STORM(授权需要Kerberos认证) | 1.2.0 |
ALL/Cluster | Topology | Submit Topology,File Upload,File Download,Kill Topology, Rebalance,Activate,Deactivate,Get Topology Conf,Get Topology,Get User Topology,Get Topology Info,Update New Credential |
| SOLR(授权需要Kerberos认证) | 7.7.1 |
ALL/Cluster | ||
| KAFKA(授权需要Kerberos认证, 删除all-topic策略中public组) |
2.0.0 |
ALL/Cluster | topoc | Publish,Consume,Configure,Describe, Create,Delete,Describe Configs,Alter Configs |
| NIFI | 1.8.0(未在pom.xml找到,参考ranger1.1.0支持版本) | NA | ||
| KYLIN | 2.5.0 |
ALL/Stand-alone | ||
| NIFI-REGISTRY | (未在pom.xml找到) | - | ||
| SQOOP | 1.99.7 |
ALL/Stand-alone | ||
| ATLAS | 2.0.0 |
ALL/Stand-alone | ||
| ELASTICSEARCH | 6.2.2 |
ALL/Cluster | ||
| PRESTO | 310 |
- | ||
| OZONE | 0.4.0 |
- |
注: Apache atlas 是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。ranger-release-ranger-2.0.0/pom.xml 显示依赖组件版本
3.Ranger架构
Ranger授权本质上是:通过读取安装组件时生成的配置文件及组件自带的jar包,通过hook方式调用各个组件服务达到权限管理。
在安装服务组件插件过程中,当执行./enable-xxx-plugin.sh时,主要执行了以下三个步骤:
第一,将插件自带的
conf更新到系统安装的服务conf下;
第二,将插件自带的lib更新到系统安装的服务lib下;
第三,将install.properties生成.xml文件,更新到系统安装的服务conf下;

4.Ranger+Knox+Kerberos架构

参考:https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=57901344
5.Ranger权限模型
| 权限模型 | 描述 |
|---|---|
| 用户 | User/Group,User代表访问资源的用户,Group代表用户所属的用户组 |
| 资源 | Resource,不同组件资源差异 HDFS:Resource Path; HBase:[Table,Column-family,Column] |
| 权限 | AllowACL/DenyACL类似白名单和黑名单机制,AllowACL用来描述允许访问的情况,DenyACL用来描述拒绝访问的情况,不同的组件对应的权限也是不一样的 |
Service = List<Policy>
Policy = List<Resource> + AllowACL + DenyACL
AllowACL = List<AccessItem> allow + List<AccssItem> allowException
DenyACL = List<AccessItem> deny + List<AccssItem> denyException
AccessItem = List<User/Group> + List<AccessType>
一条Policy有四组AccessItem:allow、allowException、deny、denyException,优先级由高到低依次是:
denyException >> deny >> allowException >> allow黑名单排除优先级 >> 黑名单 >> 白名单排除优先级 >> 白名单
黑名单优先级高于白名单,黑名单排除优先级高于黑名单,白名单排除优先级高于白名单
6.Ranger策略评估

注: Ranger的联合授权模型-[HDFS+Yarn]参考:
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/103368889
https://cwiki.apache.org/confluence/display/RANGER/Deny-conditions+and+excludes+in+Ranger+policies
7.Ranger编译、打包、集成
- 以下两篇博客,详细描述了Ranger 编译、打包、集成Ambari的过程
- Ranger0.7.0 编译、打包参考:
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/91374732 - Ranger2.0.0 编译参考:
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/102566843 - Ambari2.7.3-HDP3.0.1-Ranger版本1.1.0升级2.0.0:
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/103006158
8.Ranger API
- 《Apache Ranger Public REST APIs-Server-Policy使用Postman测试》描述了Ranger中对应服务和策略的REST API
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/100523032 - 《Apache Ranger Public REST APIs-User-Group使用Postman测试》 描述了Ranger中对应用户和用户组的REST API
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/103682857
9.Ranger权限映射表
Hadoop Component Commands to Ranger Permission Mapping
- Ambari2.7.3+HDP3.0.1 大数据集群组件命令与Ranger权限映射表:
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/103860753
10.Ranger技术体系梳理
更多推荐
所有评论(0)