概述

以 Hortonworks Data Platform (HDP) 平台为例 ,hadoop大数据平台的安全机制包括以下两个方面:

  • 身份认证 即核实一个使用者的真实身份,一个使用者来使用大数据引擎平台,这个使用者需要表明自己是谁,即提供自己的身份证明,大数据平台需要检验这个证明,确定这个证明是有效的,且不是伪造的。否则,就拒绝这个使用者进入大数据引擎。
  • 授权管理 这个使用者的真实身份核实之后,需要对这个使用者的使用权限进行界定,即这个使用者在大数据平台中能够使用什么组件,能够获取哪些资源,能够对资源进行哪些操作进行管理.

身份认证

大数据平台一般使用基于 Kerberos 的身份认证机制

  • 概述

    简单来说,大数据平台中有一个专门的认证服务器KDC,可以把它看作是户籍派出所,可事先给所有的平台使用者(人用户以及机器和程序用户)发放户籍证明,即keytab(密钥)。之后每个用户要使用大数据平台,就要拿着这个证明先去KDC认证,认证无误之后,才能够使用大数据平台引擎。

  • 操作示例

首先要对整个平台进行 kerberos 化,hdp ambari 提供了傻瓜式操作,另附文章介绍.

如上图,kerberos化后,我们对 ambari 管理界面进行了二次开发.在这里创建本地用户的时候,已经同步向KDC服务器注册了该用户的相关信息,同时生成了该用户的keytab,点击用户,进入详情页可下载密钥。之后该用户来使用大数据平台(无论是命令行还是API调用还是其他什么方式),必须先携带keytab去KDC进行认证。这里以命令行的方式举例,例如某个用户需要使用hadoop去读取hdfs上面的文件。他需要先亮明自己的身份,即执行命令:

kinit -k -t keytab路径 用户名 这样之后再去执行hdfs等命令的时候才能够认证通过,而不会报错:

Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

授权管理

大数据平台使用基于apache ranger的授权管理。授权管理是应该是建立在身份认证之上的,试想以下,如果连身份都无法确认的话,那你的任何授权都是不可靠的(你确定你授权的这个用户就是这个用户吗),你的授权管理其实是空中阁楼.

  • 概述

    ranger提供了基于资源的授权管理机制,所谓资源就是大数据平台中的各组件(例如hdfs,hive,hbase等),以及组件内的具体资源(例如hdfs的某个路径,hive,hbase中的某个表)。某个组件资源对应于ranger中的service(服务),在单个service中创建策略就可以对这个组件的具体资源进行用户的权限管理了.

  • 操作指南

    我们对 ambari 界面进行了二次开发,将 ranger 原生界面移植过来

如图,以此为例, ranger 自动探测并生成平台中各个组件服务,点击进入服务详情

增加或者编辑策略即可对具体资源进行授权管理了。如上图,我们授予了testranger用户对hbase所有表的所有列的所有操作权限。如果编辑这个策略,删除testranger这个用户,那么这个用户在hbase做查询等操作的时候就会出错:

ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user ‘testranger@EXAMPLE.COM',action: scannerOpen, tableName:test, family:f1

另外也可以新建新的策略来管理,策略提供了细粒度的权限管理方式,详细可参考 ranger 官网.

hadoop大数据平台安全基础知识入门的更多相关文章

  1. 【HADOOP】| 环境搭建:从零开始搭建hadoop大数据平台(单机/伪分布式)-下

    因篇幅过长,故分为两节,上节主要说明hadoop运行环境和必须的基础软件,包括VMware虚拟机软件的说明安装.Xmanager5管理软件以及CentOS操作系统的安装和基本网络配置.具体请参看: [ ...

  2. 数据仓库和Hadoop大数据平台有什么差别?

    广义上来说,Hadoop大数据平台也可以看做是新一代的数据仓库系统, 它也具有很多现代数据仓库的特征,也被企业所广泛使用.因为MPP架构的可扩展性,基于MPP的数据仓库系统有时候也被划分到大数据平台类 ...

  3. 单机,伪分布式,完全分布式-----搭建Hadoop大数据平台

    Hadoop大数据——随着计算机技术的发展,互联网的普及,信息的积累已经到了一个非常庞大的地步,信息的增长也在不断的加快.信息更是爆炸性增长,收集,检索,统计这些信息越发困难,必须使用新的技术来解决这 ...

  4. Hadoop大数据平台入门——HDFS和MapReduce

    随着硬件水平的不断提高,需要处理数据的大小也越来越大.大家都知道,现在大数据有多火爆,都认为21世纪是大数据的世纪.当然我也想打上时代的便车.所以今天来学习一下大数据存储和处理. 随着数据的不断变大, ...

  5. Hadoop大数据平台构建

    基础:linux常用命令.Java编程基础大数据:科学数据.金融数据.物联网数据.交通数据.社交网络数据.零售数据等等. Hadoop: 一个开源的分布式存储.分布式计算平台.(基于Apache) H ...

  6. 1 python大数据挖掘系列之基础知识入门

    preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...

  7. python大数据挖掘系列之基础知识入门

    preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...

  8. 【大数据】Clickhouse基础知识

    第1章 ClickHouse概述 1.1 什么是ClickHouse ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能 ...

  9. Hadoop大数据平台搭建之前期配置(2)

    环境:CentOS 7.4 (1708  DVD) 工具:VMware.MobaXterm 一. 克隆大数据集群 1. 选中已经进行了基本配置的虚拟机,进行克隆. 2. 此处改为"创建完整克 ...

随机推荐

  1. 【HDU - 2612】Find a way

    -->Find a way 直接上Chinese  Descriptions: hsj和lsh最近迷上了pokemon go的游戏.在双十一大物期中考试来临之前,他们想抓一只稀有土拨鼠来攒攒人品 ...

  2. 真实项目中 ThreadLocal 的妙用

    一.什么是 ThreadLocal ThreadLocal 提供了线程的局部变量,每个线程都可以通过 set() 和 get() 来对这个局部变量进行操作,但不会和其他线程的局部变量冲突,实现了线程间 ...

  3. 3.秋招复习简单整理之List、Map、Set三个接口存取元素时,各有什么特点?

    List.Set都是单列元素的集合,它们有共同的父接口Collection. List存取有序可重复元素 存元素:调用add方法,存的元素先来后到,有顺序,当然也可以插队,指定存在某个位置,调用add ...

  4. WebGL2系列之多采样渲染缓冲对象

    在很久很久以前,盘古开辟了天地,他的头顶着天,脚踩着地,最后他挂了.他的毛发变成了森林,他的血液变成了河流,他的肌肉变成了大地......卡! 哦,不对,在很久很久以前,你属于我,我拥有你.你还有没有 ...

  5. 与某公司CTO的一次闲聊

    这是一次与某公司CTO的交流沟通,收获不少,记录下分享给大家,其中个别词句有自己增改成分. 既然是领导,就要学会画饼,画图的都是底下干活的. 管理好别人的预期,并能兑现承诺,不能只靠画大饼忽悠.针对某 ...

  6. SpringBoot项目构建成jar运行后,如何正确读取resource下的文件

    SpringBoot项目构建成jar运行后,如何正确读取resource下的文件 不管你使用的是SpringBoot 1.x还是SpringBoot2.x,在开Dev环境中使用eclipse.IEAD ...

  7. Bzoj3517 翻硬币题解 解异或方程组

    3517: 翻硬币 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 281  Solved: 211[Submit][Status][Discuss] D ...

  8. 【转载】DOMContentLoaded与load的区别

    DOMContentLoaded与load的区别   (1)在chrome浏览器的开发过程中,我们会看到network面板中有这两个数值,分别对应网 络请求上的标志线,这两个时间数值分别代表什么? ( ...

  9. vmware + opensuse windows如何远程登录到suse上

    vmware我还是比较偏向7.1.4版本,其他版本装在win7上似乎有点问题.windows平台下,使用vmware + opensuse的网络配置过程如下:      1. 装完vm后,会在本地连接 ...

  10. 【小家Spring】聊聊Spring中的数据绑定 --- DataBinder本尊(源码分析)

    每篇一句 唯有热爱和坚持,才能让你在程序人生中屹立不倒,切忌跟风什么语言或就学什么去~ 相关阅读 [小家Spring]聊聊Spring中的数据绑定 --- 属性访问器PropertyAccessor和 ...