文档章节

Hadoop Sentry 学习

 幽芒
发布于 2014/08/06 20:35
字数 1030
阅读 3804
收藏 8

什么是Sentry?

         Sentry 是Cloudera 公司发布的一个Hadoop开源组件,它提供细粒度基于角色的安全控制

Sentry下的数据访问和授权

        通过引进Sentry,Hadoop目前可在以下方面满足企业和政府用户的RBAC(role-based acess control)需求:

安全授权Sentry可以控制数据访问,并对已通过验证的用户提供数据访问特权。

细粒度访问控制Sentry支持细粒度的Hadoop数据和元数据访问控制。在Hive和Impala中Sentry的最初发行版本中,Sentry在服务器、数据库、表和视图范围提供了不同特权级别的访问控制,包括查找、插入等——允许管理员使用视图限制对行或列的访问。管理员也可以通过Sentry和带选择语句的视图或UDF,根据需要在文件内屏蔽数据。

基于角色的管理Sentry通过基于角色的授权简化了管理,你可以轻易将访问同一数据集的不同特权级别授予多个组。例如,对于某特定数据集,你可以分配给反欺诈小组查看所有列的特权,给分析师查看非敏感或非PII(personally identifiable information)列的权限,给数据接收流插入新数据到HDFS的权限。

多租户管理Sentry允许为委派给不同管理员的不同数据集设置权限。在Hive/Impala的情况下,Sentry可以在数据库/schema级别进行权限管理。

统一平台Sentry为确保数据安全,提供了一个统一平台,使用现有的Hadoop Kerberos实现安全认证。同时,通过Hive或Impala访问数据时可以使用同样的Sentry协议。未来,Sentry协议会被扩展到其它组件。

Sentry 架构

 

 

       图为Sentry的基本架构,目前Sentry支持 Hive(凭借HiveServer2的基于thrift 的RPC 接口) 和Impala 。但是Sentry 具有高度模块化和可扩展的机制,它可以扩展到其它基于Hadoop的应用中去。Sentry 的授权核心层主要分两部分,结合层(Hive bindings and Impala bindings)和 核心授权提供者(Policy engine and Policy abstractions )。结合层提供一个可插拔的接口,实现与协议引擎的对话 。Policy engine 与bingdings 合作,对访问请求进行评估检验,如果允许访问,通过 Policy abstractions 来访问底层数据。

目前已经实现了基于文件的提供者,可以理解具体协议文件格式。协议文件可被存储在本地文件系统或HDFS中,以便复制和审计。

Sentry在Hive 中的使用方法

        CDH 4.4 以上版本Impala 1.1以上版本可以使用Sentry

注意:如果集群环境中Hive 和Impala 都存在, Sentry 生效的时候,必须保证 Hive 和Impala 都生效。

在Hive 中配置Sentry 要保证以下条件:

  1.  Hive warehouse 路径 (/user/hive/warehouse 或者是配置的hive.metastore.warehouse.dir 的路径) 用户和用户组必须是Hive

  2.  warehouse 权限所有者必须满足

770 on the directory itself (for example, /user/hive/warehouse)

770 on all subdirectories (for example, /user/hive/warehouse/mysubdir)

All files and directories should be owned by hive:hive

例如

$ sudo -u hdfs hdfs dfs -chmod -R 770 /user/hive/warehouse
$ sudo -u hdfs hdfs dfs -chown -R hive:hive /user/hive/warehouse

Sentry 使用 Policy file 定义对Hive 访问权限的控制,创建 Policy file sentry-provider.ini 作为HDFS文件。

需要注意的是 这个文件用户和用户组必须为hive 权限为 640。

默认路径为  /user/hive/sentry

 Policy file 例子:

Global policy file:

[groups]
admin_group = admin_role
dep1_admin = uri_role

[roles]
admin_role = server=server1
uri_role = hdfs:///ha-nn-uri/data

[databases]
db1 = hdfs://ha-nn-uri/user/hive/sentry/db1.ini


Per db policy file: (at hdfs://ha-nn-uri/user/hive/sentry/db1.ini):

[groups]
dep1_admin = db1_admin_role
dep1_analyst = db1_read_role

[roles]
db1_admin_role = server=server1->db=db1
db1_read_role = server=server1->db=db1->table=*->action=select


groups 选项匹配用户和角色;

roles 选项匹配角色和权限;

databases 是可选的, 提供数据库和per-database policy file 文件的匹配。

 

参考资料:

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM4Ent/latest/Cloudera-Manager-Managing-Clusters/cmmc_sentry_config.html

http://blog.cloudera.com/blog/2013/12/how-to-get-started-with-sentry-in-hive/



© 著作权归作者所有

粉丝 2
博文 14
码字总数 3025
作品 0
海淀
私信 提问
Apache Sentry实战之旅(一)—— Impala+Sentry整合

默认是以这个超级用户运行服务,执行和操作的,要实现不同用户之间细粒度的权限控制,需要与整合。是下的一个开源项目,它基于的授权模型实现了权限控制,与它整合以后,就能实现不同用户之间...

九州暮云
07/07
148
0
Apache Sentry 1.4.0-incubating 发布

Apache Sentry 是一个加强的细粒度的基于角色的授权系统,针对存储在 Hadoop 集群中的数据和元数据。 Apache Sentry 1.4.0-incubating 发布,此版本现已提供下载,更多内容请看发行说明。 **...

oschina
2014/08/20
1K
0
Apache Sentry 1.5.0 发布

Apache Sentry 是一个加强的细粒度的基于角色的授权系统,针对存储在 Hadoop 集群中的数据和元数据。 Apache Sentry 1.5.0 发布,此版本更新内容如下: 新特性 [SENTRY-74] - Add column-lev...

oschina
2015/04/16
1K
0
Apache Sentry 第一弹:Server启动、连接Hue、分组详解

前言: Sentry是Hadoop安全方面的一个开源组件,目前还在孵化中,地址:https://sentry.incubator.apache.org。 原属于Cloudera开发,后来贡献给了Apache。关于它的强大直接摘录一段,全文请...

王二铁
2015/08/21
3.8K
0
使用Apache Sentry的Presto

概观 Apache Sentry是一个基于角色的粒度授权模块,适用于Hadoop。Sentry提供了对经过身份验证的用户和应用程序(如Presto)的数据控制和强制执行精确级别权限的功能。 Presto Enterprise与A...

hblt-j
02/13
172
0

没有更多内容

加载失败,请刷新页面

加载更多

还为PDF转Word抓狂?以下神器让你在职场倍受欢迎!

身在职场的你,是否一直在琢磨:如何能让自己在公司更受欢迎?如何才能在办公室里混个好人缘?如何在同事圈里留个好印象?其实,想要让自己成为受欢迎的人,只要让自己成为大家需要的人不就行...

foxit2world
31分钟前
7
0
AndServer+Service打造Android服务器实现so文件调用

so 文件调用 随着 Android 移动安全的高速发展,不管是为了执行效率还是程序的安全性等,关键代码下沉 native 层已成为基本操作。 native 层的开发就是通指的 JNI/NDK 开发,通过 JNI 可以实...

夜幕NightTeam
33分钟前
4
0
Docker下kafka学习三部曲之二:本地环境搭建

在上一章《 Docker下kafka学习,三部曲之一:极速体验kafka》中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写...

程序员欣宸
33分钟前
4
0
萌新推荐!不再为Excel转换PDF发愁,Aspose.Cells for .NET一步到位!

Aspose.Cells for .NET(点击下载)是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。 将Excel工作簿转换为...

mnrssj
34分钟前
6
0
对于绘画小白怎么画制服?该注意什么?

怎样制作学生服装?想必绘画初学者们常常会想的问题吧,不知道怎样才能画好人物的衣服,别着急,今日就在这儿讲一些关于如何绘画学生衣服校服的教程给我们!期望能够帮到你们! 轻便西装是不...

热爱画画的我
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部