26.2.1业务背景
26.2.1.1现状&&需求
26.2.2大数据安全组件介绍与对比
26.2.2.2 Apache Sentry
26.2.2.3 Apache Ranger
26.2.3 Knox,ranger,Kerveros,LDAP整合
26.2.3.1Kerberos与Ranger
26.3Apache Ranger系统架构及实践
26.3.2组件介绍
26.3.2.1整体说明
26.3.2.2 Ranger Admin
26.3.2.3UserSync
26.3.2.4 Service Plugin
26.3.2.5 Ranger-SDK
26.3.3 权限模型
26.3.4 权限实现
26.3.4.1 Hdfs实现原理
26.3.4.2 Hbase实现原理
26.3.4.3 Hive实现原理
26.3.4.4 Yarn实现原理

26.2Apache ranger原理与应用实践

转载博文:https://blog.csdn.net/qq475781638/article/details/90247153

26.2.1业务背景

大数据集群最基本的就是数据以及用于计算的资源,是一个公司的宝贵财富,我们需要将它们很好管理起来,将相应的数据和资源开放给对应的用户使用,防止被窃取、被破坏等,这就涉及到大数据安全。

26.2.1.1现状&&需求

目前我们大数据集群的现状是处于裸奔状态,只要可以登录linux机器即可对集群继续相关操作
所以集群安全对于我们来说迫在眉睫,主要需求有以下几个方面:
支持多组件,最好能支持当前公司技术栈的主要组件,HDFS、HBASE、HIVE、YARN、STORM、KAFKA等
支持细粒度的权限控制,可以达到HIVE列,HDFS目录,HBASE列,YARN队列,STORM拓扑,KAKFA的TOPIC
开源,社区活跃,按照现有的集群改情况造改动尽可能的小,而且要符合业界的趋势。

26.2.2大数据安全组件介绍与对比

目前比较常见的安全方案主要有三种:

Kerberos(业界比较常用的方案)
Apache Sentry(Cloudera选用的方案,cdh版本中集成)
Apache Ranger(Hortonworks选用的方案,hdp发行版中集成)

26.2.2.1Kerberos

Kerberos是一种基于对称密钥的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为其它服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务如HBase/HDFS等)。

服务名 作用
KDC Kerberos的服务端程序,用于验证各个模块
Client 需要访问服务的用户,KDC和Service会对用户的身份进行认证。
Service 即集成了Kerberos的服务,如HDFS/YARN/HBASE等。

Kerberos协议过程主要有三个阶段,第一个阶段Client向KDC申请TGT,第二阶段Client通过获得的TGT向KDC申请用于访问Service的Ticket,第三个阶段是Client用返回的Ticket访问Service。

优点:
服务认证,防止broker datanode regionserver等组件冒充加入集群
解决了服务端到服务端的认证,也解决了客户端到服务端的认证

缺点:
kerberos为了安全性使用临时ticket,认证信息会失效,用户多的情况下重新认证繁琐
kerberos只能控制你访问或者拒绝访问一个服务,不能控制到很细的粒度,比如hdfs的某一个路径,hive的某一个表,对用户级别上的认证并没有实现(需要配合LDAP)

26.2.2.2 Apache Sentry

Apache Sentry是Cloudera公司发布的一个Hadoop安全开源组件,它提供了细粒度级、基于角色的授权.

优点:
Sentry支持细粒度的hdfs元数据访问控制,对hive支持列级别的访问控制
Sentry通过基于角色的授权简化了管理,将访问同一数据集的不同特权级别授予多个角色
Sentry提供了一个统一平台方便管理
Sentry支持集成Kerberos
缺点:
组件只支持hive,hdfs,impala 不支持hbase,yarn,kafka,storm等

26.2.2.3 Apache Ranger

Apache Ranger是Hortonworks公司发布的一个Hadoop安全组件开源组件
优点:
提供了细粒度级(hive列级别)
基于访问策略的权限模型
权限控制插件式,统一方便的策略管理
支持审计日志,可以记录各种操作的审计日志,提供统一的查询接口和界面
丰富的组件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM)
支持和kerberos的集成
提供了Rest接口供二次开发

26.2.3 Knox,ranger,Kerveros,LDAP整合

26.2.3.1Kerberos与Ranger

Kerberos与Ranger都是Hadoop安全体系中的两个部分,但是它们分工是不同的。可以联系我们每天上班然后坐到办公室的过程

某个人员进入公司之前,保安需要检查它是否有工卡,如果没有工卡,保安GG就会认为你不是公司员工,而不允许你进入到公司园区。 当你进入公司园区之后,这个时候你想到某个仓库去看一下,仓库大门就会检查一下你有没有门禁,有门禁才会让你进入到仓库中。
我们可以把公司园区类比成大数据集群平台,工卡就要相当于你的Kerberos权限认证,而仓库就对应着具体的hdfs文件路径。

26.3Apache Ranger系统架构及实践

26.3.1架构介绍

26.3.2组件介绍

26.3.2.1整体说明

Ranger是由三个部分组件:Ranger Admin,Ranger Usersync与Ranger Plugin,它们关系如下:

在Ranger的官网中有对于这三个组件的说明:

组件名称 说明
Admin Ranger Admin Portal是安全管理的中心接口。 用户可以创建和更新策略,这些策略存储在策略数据库中。 每个组件内的Plugins会定期轮询这些策略。Portal还包括一个审计服务器,它发送从插件收集的审计数据,以便存储在HDFS或关系数据库中。
UserSync 同步实用工具来从Unix或LDAP或Active Directory中拉取用户和组。 用户或组信息存储在Ranger门户中,用于策略定义。
Plugin 插件是嵌入每个集群组件进程的轻量级Java程序。 例如,Apache Hive的Apache Ranger插件嵌入在Hiveserver2中。 这些插件从中央服务器提取策略,并将它们本地存储在一个文件中。 当用户请求通过组件时,这些插件拦截请求并根据安全策略进行评估。 插件还可以从用户请求中收集数据,并按照单独的线程将此数据发送回审计服务器。

26.3.2.2 Ranger Admin

Ranger admin它包含三个部分: Web页面、Rest消息处理服务以及数据库。 我们可以把它看成一个用来数据集中存储中心(所有的数据都集中存在这里,但是其它两个组件也可单独运行存在)。它的具体作用:

  1. 接收UserSync进程传过来的用户、组信息。 并将它们保存到MySql数据库中。 需要注意:这些用户信息在配置权限策略的时候需要使用。这个很容易理解,就象领物料的时候,管理员需要登记物料的领用人,如果不是本公司的人,肯定就不会让你领了。
  2. 提供创建policy策略的接口
  3. 提供外部REST消息的处理接口

26.3.2.3UserSync

UserSync是Ranger提供的一个用户信息同步接口,可以用来同步Linux用户信息与LDAP用户信息。通过配置项:SYNC_SOURCE = LDAP/UNIX来确认是LDAP还是UNIX,默认情况是同步Unix信息。对于UserSync有三点需要说明:
1、这个同步是单向的。
就是说它只管从Unix上面的本地用户信息读取出来,然后上传到Ranger Admin上面。
2、UserSync不是同时同步的
如果用户新创建一个用户,但是这个用户无法立即同步到Ranger中
3、不支持删除用户
Ranger暂时不支持通过同步或者代码的方式直接删除用户

26.3.2.4 Service Plugin

嵌入到各系统执行流程中,定期从RangerAdmin拉取策略,根据策略执行访问决策树,并且记录访问审计

插件名称 安装节点
Hdfs-Plugin NameNode
Hbase-Plugin HMaster+HRegionServer
Hive-Plugin HiveServer2
Yarn-Plugin ResourceManager

26.3.2.5 Ranger-SDK

对接开放平台,实现对用户、组、策略的管理

26.3.3 权限模型

访问权限无非是定义了”用户-资源-权限“这三者间的关系,Ranger基于策略来抽象这种关系,进而延伸出自己的权限模型。”用户-资源-权限”的含义详解:
用户
由User或Group来表达,User代表访问资源的用户,Group代表用户所属的用户组。
资源
不同的组件对应的业务资源是不一样的,比如:
HDFS的FilePath
HBase的Table,Column-family,Column
Hive的Database,Table,Column
Yarn的对应的是Queue
权限
由(AllowACL, DenyACL)来表达,类似白名单和黑名单机制,AllowACL用来描述允许访问的情况,DenyACL用来描述拒绝访问的情况,不同的组件对应的权限也是不一样的。

插件 权限项
Hdfs Read Write Execute
Hbase Read Write Create Admin
Hive Select Create Update Drop Alter Index Lock Read Write All
Yarn submit-app admin-queue

26.3.4 权限实现

Ranger-Admin职责:
管理员对于各服务策略进行规划,分配相应的资源给相应的用户或组,存储在db中。
Service Plugin职责:
定期从RangerAdmin拉取策略。
根据策略执行访问决策树。
实时记录访问审计

策略执行过程:

策略优先级:
黑名单优先级高于白名单
黑名单排除优先级高于黑名单
白名单排除优先高于白名单
决策下放:
如果没有policy能决策访问,一般情况是认为没有权限拒绝访问,然而Ranger还可以选择将决策下放给系统自身的访问控制层。

组成集成插件原理:

Service Extensible Interface Ranger Implement Class
HDFS org.apache.hadoop.hdfs.server.namenode.INodeAttributeProvider org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer
HBASE org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor
Hive org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizerFactory org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory
YARN org.apache.hadoop.yarn.security.YarnAuthorizationProvider org.apache.ranger.authorization.yarn.authorizer.RangerYarnAuthorizer

ranger通过实现各组件扩展的权限接口,进行权限验证

26.3.4.1 Hdfs实现原理

hdfs-site.xml会修改如下配置:

<property><name>dfs.permissions.enabled</name><value>true</value>
</property>
<property><name>dfs.permissions</name><value>true</value>
</property>
<property><name>dfs.namenode.inode.attributes.provider.class</name><value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
</property>

加载过程:

26.3.4.2 Hbase实现原理

在安装完hbase插件后,hbase-site.xml会修改如下配置:

<property><name>hbase.security.authorization</name><value>true</value>
</property>
<property><name>hbase.coprocessor.master.classes</name><value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
</property>
<property><name>hbase.coprocessor.region.classes</name><value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
</property>

加载过程:

26.3.4.3 Hive实现原理

hiveserver2-site.xml

<property><name>hive.security.authorization.enabled</name><value>true</value>
</property>
<property><name>hive.security.authorization.manager</name><value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
</property>

加载过程:

26.3.4.4 Yarn实现原理

yarn-site.xml

<property><name>yarn.acl.enable</name><value>true</value>
</property>
<property><name>yarn.authorization-provider</name><value>org.apache.ranger.authorization.yarn.authorizer.RangerYarnAuthorizer</value>
</property>

加载过程:

Apache Ranger、业务背景、现状与需求、大数据安全组件介绍与对别、系统架构及实践、ranger admin、UserSync、plugin、权限模型、权限实现等相关推荐

  1. 打造千万级流量秒杀系统第一课 功能需求:秒杀业务背景及前端需求是怎么产生的?

    你好,我是易乐天,到 2020 年,我在软件行业已经 10 年了. 我曾经做过 Linux 系统编程相关的工作,积累了许多性能优化方面的经验.后来,我开始做分布式系统的架构设计和实现,特别是项目当中涉 ...

  2. 医疗大数据安全——基于区块链的委托量子云架构

    Blockchain-based delegated Quantum Cloud architecture for medical big data security 导论 相关研究 研讨会贡献 关键 ...

  3. 最全最详细的大数据组件介绍

    大数据基本框架 目录 大数据基本框架 分布式文件系统 文件数据模型 键-值数据模型 图形数据模型 NewSQL数据库 列式数据库 时间序列数据库 类SQL处理 数据抽取及队列 分布式编程 服务编程 调 ...

  4. 【大数据 OLAP ClickHouse 引擎】ClickHouse 系统架构和存储引擎实现原理 : 为什么 ClickHouse 这么快? Why is ClickHouse so fast?

    文章目录 ClickHouse 系统架构和存储引擎实现原理 ClickHouse 简介 ClickHouse 整体架构 & 核心模块 1. Column与Field 2. DataType 3 ...

  5. 兴盛优选大数据安全管控平台实践(DataS)

    1.概述 随着移动互联网的发展成熟,各种不同形式的网购成为了用户消费模式当中非常重要的一部分,同时随着平台用户量的不断增长,平台企业可以拥有的数据量也随之成倍增长,随着大数据的到来,数据当中蕴藏的巨大 ...

  6. 大数据安全目前面临得主要挑战有哪些

    大数据安全挑战 大数据安全风险伴随大数据应用而生.随着互联网.大数据应用的爆发,数据丢失和个人信息泄漏事件频发,地下数据交易黑灰产造成数据滥用和网络诈骗,并引发恶性社会事件,甚至危害国家安全.如 20 ...

  7. apache virtualhost 访问不了_六星教育:你为什么当不了架构师?除技术,你还需具备这些能力...

    为什么人人都想成为架构师?不外乎这几点:能力强,工资高,有底气.但是有80%的程序员是成不了架构师,这说明架构师的稀缺性.今天就让六星带你走进架构师世界,帮助你更好了解什么是架构师必备技能. 架构师需 ...

  8. 大数据安全的重要性解读

    大数据安全 本章从保障大数据安全和利用大数据保障网络空间安全两个方面介绍了大数据安全的含义,阐述了我国大数据安全发展状况和大数据安全的重要意义. 大数据安全含义 保障大数据安全 当今社会进入大数据时代 ...

  9. 信息安全-大数据安全需求分析与安全保护工程

    一.大数据安全威胁与需求分析 1.1 大数据相关概念发展 大数据:是指非传统的数据处理工具的数据集 大数据特征:海量的数据规模.快速的数据流转.多样的数据类型和价值密度低等 大数据的种类和来源非常多, ...

最新文章

  1. DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略
  2. mysql给字段添加描述_用sql 语句给字段添加描述
  3. e课表项目第二次冲刺周期第四天
  4. Java-类型转换,String转Object和Object转String
  5. 鹅厂员工平均月薪7万刷屏!公司每天赚9.5亿,养5.46万人
  6. button html ios,iOS实现UIButton图标和文字上下布局
  7. 非线性动力方程中的解析法和数值法(解析解和数值解)
  8. 在VMware下新建虚拟机Win10系统
  9. .c与.cpp的区别解析
  10. 2023中国人民公安大学计算机考研信息汇总
  11. 语速对科大讯飞,百度,思必驰,云知声的语音引擎识别结果影响对比
  12. 工作日时间差/考勤计算(SQL 自定义函数)
  13. python发微信工资条_使用python自动发放员工工资条到个人邮箱
  14. VC6 限定鼠标移动范围
  15. 中国武术职业联赛(WMA)
  16. 通信协议之IIC协议(eeprom)_通俗易懂篇!
  17. Ubuntu 更新错误修复大全
  18. 汉诺塔问题的时间复杂度
  19. 项目组合管理(PPM)
  20. 【百人计划】图形4.1 Bloom算法

热门文章

  1. 2.Hadoop的学习(Ubuntu的目录及权限)
  2. VTK:圆锥用法实战
  3. boost::phoenix::switch_相关的测试程序
  4. boost::mp11::mp_invoke_q相关用法的测试程序
  5. boost::hana::template_用法的测试程序
  6. boost::hana::comparing用法的测试程序
  7. boost::log::sinks::synchronous_sink用法的测试程序
  8. boost::graph模块实现在无向图上使用连通分量算法
  9. boost::fibers::launch::dispatch的用法测试程序
  10. boost::int64_t模块int64 范围的测试程序