Chinaunix

标题: Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制 [打印本页]

作者: dingdejun    时间: 2013-08-19 15:35
标题: Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制
本帖最后由 dingdejun 于 2013-08-19 15:35 编辑

摘要:安全一直都是Hadoop的短板,包括Cloudera、Intel在内等多个Hadoop发行版厂商,都在实行或制定安全方面的计划。日前,作为Hadoop厂商中的佼佼者,Cloudera发布了Sentry来弥补Hadoop的安全漏洞。
今年5月,Cloudera将Impala贡献给了开源社区,但在Impala的厂商支持上,Cloudera似乎一直在唱独角戏。原因在于:其一,管理和监控Impala的查询都要通过订阅Cloudera的商业管理平台;其二,所有Cloudera的竞争对手也都有各自在Hadoop上的SQL工具,如Hortonworks的Stinger,MapR的Drill,Pivotal的专利HAWQ引擎以及IBM的BigSQL。

日前,Cloudera将Sentry也贡献给了开源社区,并遵循Apache开源协议。Cloudera并不是唯一在Hadoop安全方面进行开发的厂商,但是如果所有厂商都能在这个领域达成一致,对于Hadoop长期的发展大有裨益。而Cloudera最大的竞争对手Hortonworks还未就此事发表评论。

Cloudera官方博客中,Sentry项目的两位工程师Shreepadma Venugopalan和Brock Noland为我们介绍了Hadoop的“哨兵”——Sentry。译文如下:

每一天都有更多的数据、用户和应用在加入Apache Hadoop这个日益壮大的集群中来。虽然对于整个数据驱动的组织来说这是一个好消息,但对于安全管理员和监察人员来说,如何让终端用户在现存的Hadoop架构下,不在安全方面进行妥协始终是个挥之不去的问题。

尽管Hadoop在文件系统层有很强的安全性,但对于保证用户数据访问和BI应用程序的充分安全,它缺乏颗粒级的支持。因此,许多对安全系数要求较高的业内组织被迫做出选择:要么将数据置于非保护状态,要么将所有的用户拒之门外。大多数企业选择后者,严格限制对Hadoop数据的访问。

Cloudera发起的开源项目Sentry将用来解决这个问题。Sentry是一个Hadoop的授权模块,为了对正确的用户和应用程序提供精确的访问级别,Sentry提供了细粒度级、基于角色的授权以及多租户的管理模式,为Hadoop使用者提供了以下便利:


Sentry目前可以作为CDH4.3的补丁包,未来会作为CDH4.4和Impala1.1的核心组件被推出。此外,我们计划将Sentry推荐为Apache孵化器项目,使其能在Hadoop生态圈中物尽其用。

下文将详细介绍开发Sentry的原因,以及其功能和架构的技术概述。

Hadoop安全观往知来
对于金融、政府、医疗保健和其它对敏感数据的访问有严格监管的行业,如若使用Hadoop必须要达到以下几个要求:


得益于近来在Hadoop社区的工作(例如Cloudera对Hive的贡献HiveServer2)以及与方案提供商的合作,要求1和2已经通过Kerberos认证、加密和屏蔽技术得到了实现。Cloudera Navigator通过对文件、记录和元数据的中央审计支持要求4。但对于要求3,访问安全,直到Sentry的推出才得到了解决。

没有Sentry的访问和授权
在Sentry诞生之前,对于授权有两种备选解决方案——粗粒度级的HDFS授权和咨询授权,但它们并不符合典型的规范和数据安全需求,原因如下:


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


接下来,将通过Sentry的架构介绍这些功能是如何实现的。

Sentry架构
Sentry是一个高度模块化和可扩展的机制。最初,它允许Impala和Hive执行细粒度的安全策略,但同时它也可以扩展到其它框架。


Sentry架构:初始绑定在Hive和Impala上,内置可扩展到其它框架

Sentry包括一个核心授权提供者和一个结合层。核心授权提供者包括:一个协议引擎,可以评估和验证安全协议;一个协议提供者,负责解析协议。结合层提供一个可插拔的接口,乐意实现与协议引擎的对话。(协议提供者和结合层都提供了可插拔的接口)。

目前我们已经实现了基于文件的提供者,可以理解具体协议文件格式。协议文件可被存储在本地文件系统或HDFS中,以便复制和审计。尽管Cloudera只是初步实现了对Hive和Impala的支持,但是请记住Sentry架构是可扩展的:任何开发者都可以将其绑定到其它组件(例如Pig或Cloudera搜索)或构件一个可以理解协议的数据库提供者。
在Sentry中组件特有的绑定为特定的组件实现了特权模式,而且理解内部数据结构。例如,Hive绑定实现了针对Hive的特权模式,允许对表中行/列数据的细粒度访问,以及元数据操作,例如显示表。

结论
我们相信Sentry是通往Hadoop安全的关键一步,将推动大数据技术在更多行业、组织和终端用户的使用,同时为管理员提供灵活、多租户的管理,以及统一的平台。Cloudera不仅将Sentry贡献给了Hadoop生态圈,同时在大数据平台Cloudera Enterprise中也支持Sentry。
Sentry可作为CDH4.3的补丁下载,也可以在Apache孵化器项目中查看源代码。对Hive的支持通过Cloudera Enterprise订阅实现,对Impala的支持通过RTQ订阅实现。







欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2