标签:server1 alt 思路 col 数据 用户、组和权限 dfs log --
在进行讲解之前,先带大家学习下hadoop关于hdfs自己的安全如何实现的---------------------------
名词:
ACL-访问控制列表(Access Control List,ACL)
ARBAC-基于角色的权限访问控制(Role-Based Access Control)
所有安全体系的了解,大数据平台安全体系的四个层次说起:外围安全、数据安全、访问安全以及访问行为监控,如下图所示;
在这四个安全的层次中,第三层同上层业务的关系最为直接:应用程序的多租户,分权限访问控制都直接依赖这一层的技术实现。
普通Hadoop集群中的各个组件通常使用不同模型进行权限管理。
这就意味着为三个组件授权需要登录三个系统,使用三种不同的模型授权,为权限运维造成不小的难度。基本上就是访问安全,并没有其他安全的防护。。。。
问题背景:
Hadoop在企业中广泛地应用,越来越多的业务场景要求大数据访问控制的粒度也不再局限在文件级别,而是更加细致地约束文件内部的数据哪些只能被读,哪些完全不允许被访问。对于基于SQL的大数据引擎来说,数据访问不止要到表粒度,更要精确到行列级别。
安全组件的来源背景:
Hive是早期将高级查询语言SQL引入Hadoop平台的引擎之一,早期的Hive服务器进程被称作Hiveserver1;Hiveserver1既不支持处理并行的多个连接,又不支持访问授权控制;后来这两个问题在Hiveserver2上被解决,Hiveserver2能够使用grant/revoke语句来限制用户对数据库、表、视图的访问权限,行列权限的控制是通过生成视图来实现的;但Hiveserver2的授权管理体系被认为存在问题,那就是任何通过认证登陆的用户都能够为自己增加对任何资源的访问权限。也就是说Hiveserver2提供的不是一种安全的授权体系,Hiveserver2的授权体系是为防止正常用户误操作而提供保障机制;不是为保护敏感数据的安全性而设计的。然而这些更多的是某些公司的说辞,事实上Hiveserver2自身的安全体系也在逐步完善,上述问题也在快速修复中。
但授权管理其实不止是Hive需要,其他的查询引擎也迫切需要这些技术来完善和规范应用程序对数据的访问。对于细粒度授权管理的实现,很大一部分功能在各引擎之间是可以公用的,因此独立实现的授权管理工具是非常必要的。
在这样的背景下,Cloudera公司的一些开发者利用Hiveserver2中现有使用价值的授权管理工具Sentry,下图是Sentry与Hiveserver2中的授权管理模型的对比:
Sentry的很多基本模型和设计思路都来源于Hiveserver2,但在其基础之上加强了RBAC的概念。在Sentry中,所有相应的权限。权限à角色à用户组à用户,这一条线的映射关系在Sentry中显得尤为清晰,这条线的映射显示了一条权限如何能最后被一个用户所拥Hadoop自身的用户-组映射来实现的。有集中配置,易于修改的好处。
Sentry将Hiveserver2中支持的数据对象从数据库/表/视图扩展到了服务器,URI以及列粒度。虽然列的权限控制可以用视图来实现,但是对于多用户,表数量巨大的情况,视图的方法会使得给视图命名变得异常复杂;而且用户原先写的针对原表的查询语句,这时就无法直接使用,因为视图的名字可能与原表完全不同。
目前Sentry1.4能够支持的授权级别还局限于SELECT,INSERT,ALL这三个级别,但后续版本中已经能够支持到与Hiveserver2现有三个重要的组件:一是Binding;二是Policy Engine;三是Policy Provider。
Binding实现了对不同的查询引擎授权,Sentry将自己的Hook函数插入到各SQL引擎的编译、执行的不同阶段。这些Hook函数起两大作用:一是起过滤器的作用,只放行具有引擎的授权信息也存储在由Sentry设定的统一的数据库中。这样所有引擎的权限就实现了集中管理。
Policy Engine判定输入的权限要求与已保存的权限描述是否匹配,Policy Provider负责从文件或者数据库中读取出原先设定的访问权限。Policy Engine以及Policy Provider其实对于任何授权体系来说都是必须的,因此是公共模块,后续还可服务于别的查询引擎。
Guardian 5.0在原有安全解决方案的基础上提供了更加完整的功能以及方便的操作,包括用户认证、授权、配额管理以及资源控制。用户认证通过LDAP以及KERBEROS协议,确保只有经过身份甄别的用户才能访问系统,授权保证只有被赋予权限的用户才可以访问系统资源,配额管理与资源负责控制用户使用的资源大小,三个部分一同保证TDH平台大数据安全。
星环大数据安全组件Guardian与hadoop自带的安全组件区别
标签:server1 alt 思路 col 数据 用户、组和权限 dfs log --
原文地址:https://www.cnblogs.com/wang3680/p/10364463.html