免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2829 | 回复: 0
打印 上一主题 下一主题

[Hadoop&HBase] Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-19 15:35 |只看该作者 |倒序浏览
本帖最后由 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使用者提供了以下便利:

  • 能够在Hadoop中存储更敏感的数据
  • 使更多的终端用户拥有Hadoop数据访问权
  • 创建更多的Hadoop使用案例
  • 构建多用户应用程序
  • 符合规范(例如SOX,PCI,HIPAA,EAL3)

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

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

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

  • 周边安全:通过网络安全、防火墙和最终的认证来确认用户身份,确保集群访问的安全。
  • 数据安全:通过屏蔽和加密技术,保护集群中的数据不会被非法访问,包括已存储的数据和传输中的数据。
  • 访问安全:通过文件系统ACL和细粒度授权,定义授权用户和应用程序对集群数据的权限。
  • 可见性:通过中央审计报告数据源和数据用法。

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

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

  • 粗粒度级的HDFS授权:安全访问和授权的基本机制被HDFS文件模型的粒度所限制。五级授权是粗粒度的,因为没有对文件内数据的访问控制:用户要么可以访问整个文件,要么什么都看不到。另外,HDFS权限模式不允许多个组对同一数据集有不同级别的访问权限。
  • 咨询授权:咨询授权在Hive中是一个很少使用的机制,旨在使用户能够自我监管,以防止意外删除或重写数据。这是一种“自服务”模式,因为用户可以为自己授予任何权限。因此,一旦恶意用户通过认证,它不能阻止其对敏感数据的访问。

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是一个高度模块化和可扩展的机制。最初,它允许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订阅实现。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP