博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop大数据平台安全基础知识入门
阅读量:5124 次
发布时间:2019-06-13

本文共 1756 字,大约阅读时间需要 5 分钟。

概述

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

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

身份认证

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

  • 概述

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

  • 操作示例

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

1251474-20190805225423828-1939155532.png

如上图,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 原生界面移植过来
    1251474-20190805232002592-653753810.png

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

1251474-20190805232247181-540808798.png

增加或者编辑策略即可对具体资源进行授权管理了。如上图,我们授予了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 官网.

转载于:https://www.cnblogs.com/hdpdriver/p/11306177.html

你可能感兴趣的文章
[USACO 2017 Feb Gold] Tutorial
查看>>
JDK安装与环境变量配置
查看>>
原生js实现缓动返回顶部
查看>>
1.4Activity保存现场状态
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>
maven+springmvc下载excle文件——ie8可用
查看>>
OD使用教程20 - 调试篇20
查看>>
Java虚拟机(JVM)默认字符集详解
查看>>
给管道注册事件,用于用户是否登录!
查看>>
Java Servlet 过滤器与 springmvc 拦截器的区别?
查看>>
必须理解的分布式系统中雷同的集群技术及原理
查看>>
(tmp >> 8) & 0xff;
查看>>
linux命令之ifconfig详细解释
查看>>
NAT地址转换
查看>>
一个密码经过多次MD5加密能否提高安全性?Java MD5盐值加解密
查看>>
C#数组的合并拆分
查看>>
[转帖]什么是α射线、β射线、γ射线
查看>>
[转帖]Docker 清理占用的磁盘空间
查看>>
三羊献瑞(暴力破解)
查看>>
vmware创建虚拟机并安装centos7系统
查看>>