大数据安全管理组件-Ranger学习总结

文章目录

  • 1.Ranger简介
  • 2.Ranger构成
    • 2.1 内部依赖
    • 2.2 内部组件
    • 2.3 Ranger插件(version-2.0)
  • 3.Ranger架构
  • 4.Ranger+Knox+Kerberos架构
  • 5.Ranger权限模型
  • 6.Ranger策略评估
  • 7.Ranger编译、打包、集成
  • 8.Ranger API
  • 9.Ranger权限映射表
  • 10.Ranger技术体系梳理

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密钥信息

大数据安全管理组件-Ranger学习总结_第1张图片

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 显示依赖组件版本
大数据安全管理组件-Ranger学习总结_第2张图片

3.Ranger架构

Ranger授权本质上是:通过读取安装组件时生成的配置文件及组件自带的jar包,通过hook方式调用各个组件服务达到权限管理
在安装服务组件插件过程中,当执行./enable-xxx-plugin.sh时,主要执行了以下三个步骤:

第一,将插件自带的conf更新到系统安装的服务conf下;
第二,将插件自带的lib更新到系统安装的服务lib下;
第三,将install.properties生成.xml文件,更新到系统安装的服务conf下;

大数据安全管理组件-Ranger学习总结_第3张图片

4.Ranger+Knox+Kerberos架构

大数据安全管理组件-Ranger学习总结_第4张图片
参考: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 + List<AccessType>

一条Policy有四组AccessItem:allow、allowException、deny、denyException,优先级由高到低依次是:

denyException >> deny >> allowException >> allow
黑名单排除优先级 >> 黑名单 >> 白名单排除优先级 >> 白名单
黑名单优先级高于白名单,黑名单排除优先级高于黑名单,白名单排除优先级高于白名单

6.Ranger策略评估

大数据安全管理组件-Ranger学习总结_第5张图片
注: 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技术体系梳理

  • Apache Ranger 技术体系梳理.xmind

  1. https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.4/installing-ranger/content/ranger_install_ranger_audit_settings.html ↩︎

你可能感兴趣的:(Ranger)