Hadoop数据安全和哨兵

像许多软件项目一样,安全性通常是事后的想法。 早期的Apache Hadoop使用模型基于在专用数据中心内处理大量公共数据(爬网网页)的计算机集群。 鉴于所收集的数据已经公开,因此保护数据及其结果的需要是实施过程中不必要的方面。

但是随着Hadoop的发展,使用它的使用模型也随之增长。 如今,不仅正在处理私有数据集,而且还将Hadoop应用于多租户场景,在该场景中,各种用户(每个人对原始数据和处理后的数据都有不同的需求)正在处理各种数据集。 Hadoop也越来越多地应用于敏感数据集,其中必须对数据进行加密以避免泄漏。 因此,现在将安全性视为Hadoop集群的组成部分。 在本文中,我将探讨Hadoop在安全性方面正在进行的一些有趣的工作。 我研究数据安全性,外围安全性和数据访问安全性。

大数据,隐私和数据漏洞

借助大数据解决方案扩展安全智能

获取有关IBM Security Intelligence和大数据的最新信息。

使用IBM Security Intelligence和大数据解决方案来发现有关现代高级数据威胁的可行见解。 阅读白皮书并了解以下内容:

  • 了解和识别高级威胁
  • 使用IBM QRadar Security Intelligence扩展可见性
  • IBM InfoSphere BigInsights的安全性智能

订阅developerWorks Security每月时事通讯 。

大数据带来更大的责任。 随着数据的增长以及使用该数据的应用程序和框架的增长,出现了必须解决的新漏洞。 与大数据有关的隐私问题最著名的例子之一发生在2006年。作为改进其电影推荐服务的竞赛的一部分,Netflix发布了一个大数据集供研究人员用于搜索更准确的算法。 数据集由Netflix内部数据组成,匿名后将其删除以删除可以直接识别客户的信息。 不幸的是,研究人员能够根据Netflix数据中的匿名评论和Internet电影数据库中的公开评论,从Netflix数据库中的用户ID识别用户。

这种情况说明,通过将信息与其他公共资源相关联,甚至可以将匿名数据追溯到真实用户。 Netflix的回应是从数据集中排除某些信息,但包括其他信息,例如用户的邮政编码,年龄和性别,但是这种方法也存在缺陷。 卡内基梅隆大学(Carnegie Mellon University)识别出,利用这些信息,可以在87%的时间内通过邮政编码,年龄和性别识别出一个人。

这种情况说明了大数据的一种危险。 即使尝试匿名化数据,仍然可以通过外部关联泄漏敏感或私人信息。 当数据集有必要的监管要求时(例如《健康保险可移植性和责任法案》 [HIPAA]),必须做更多的工作以避免可能产生的更严重的法律后果。

让我们从问题的描述开始,然后深入研究Cloudera的解决方案Sentry

Hadoop生态系统中的安全性

如今,Hadoop在文件系统级别支持强大的安全性。 回想一下,Hadoop分布式文件系统(HDFS)是在另一个本机文件系统(例如第三个可扩展文件系统[ext3])中实现的。 Hadoop的访问控制通过使用遵循UNIX限模型的基于文件的权限来实现。 尽管此模型在HDFS内提供文件级权限,但它缺少更多细粒度的访问控制。

例如,考虑一下HDFS中的一个文件,其中包含一组用户的电影评论。 此数据包含用户ID,邮政编码,性别,年龄,电影标题和评论。 在Hadoop中,访问是一种全有或全无的模型。 如果可以使用权限模型访问文件,则可以访问文件中的所有字段。 需要的是更细粒度的访问模型。 如果授予文件中所有数据更高的安全访问权限,则可以为数据的各个字段(例如,除用户ID和邮政编码以外的所有数据)提供较低的安全访问权限。 较低的安全性访问将泄漏用户信息的可能性降到最低,并且基于角色的各个字段的访问使得可以限制文件内的访问,而不是全部文件访问。

哨兵的起源

Sentry,曾经被称为Access ,是一个源自Cloudera的开源项目。 Sentry在Cloudera中开发,并于2013年8月发布到Apache Incubator。

考虑到Hadoop实施中的数据安全性,总体问题将变得更加困难。 Hadoop及其底层文件系统是具有许多联系点的复杂分布式系统。 鉴于其复杂性和规模,将安全性应用到此系统本身就是一个挑战。 任何安全性实现都必须与整个体系结构集成以确保适当的安全性覆盖。

授权框架和RBAC

Sentry支持先前为基于角色的访问定义的模型,称为基于角色的访问控制 (RBAC),用于基于关系数据库形式的数据(数据库,表,视图等)。 RBAC模型提供了安全的企业大数据环境所需的多种功能。 第一个是安全授权 ,它可以对已认证的用户执行访问权限数据。 可以将用户置于角色下,然后赋予其数据访问权限。 此行为允许模型扩展以允许使用模板将用户分类为角色,而不是管理员必须为每个用户分配详细的特权。 此功能还简化了权限管理,减轻了管理员的负担,同时最大程度地减少了潜在的错误和意外访问。

此外,可以为用户配置特权管理,以便在数据库或架构级别将任务分发给多个管理员。 可以在数据库中控制对数据和元数据的细粒度访问控制。 例如,特定角色可以允许数据,而另一个角色可以允许数据(在服务器,数据库和表范围内)。 以我的Netflix为例,这意味着对于不太严格的安全级别,可以定义角色以限制对个人身份信息的可见性。

最后,Sentry通过使用已集成到Hadoop中的现有且经过验证的Kerberos身份验证协议来实现身份验证。

使用HDFS,Hive和Impala的哨兵

图1展示了Sentry的基本体系结构。 正如您将很快发现的那样,它是为可扩展性而设计的,以支持各种基于Hadoop的应用程序,并为各种形式的数据提供程序提供了可移植性。

图1. Sentry的基本架构

该图显示了Apache Knox网关的外围安全性

Knox网关是Sentry的补充安全解决方案,提供了外部访问安全级别。 作为非军事区中的网关,Knox网关提供对由网络防火墙隔离的一个或多个Hadoop群集的受控访问。

委托令牌

在Apache Knox网关和Sentry提供外围和数据访问安全性的地方,缺少的一个要素是来自MapReduce任务的HDFS数据访问。 Oozie使用的一种解决方案依赖于委托令牌的概念。 委托令牌是一种两方身份验证协议,使用户可以使用 (使用Kerberos)对自己进行身份验证; 在收到委派令牌后,用户可以将令牌提供给以便这些用户获得的Hadoop作业可以依靠令牌来安全访问HDFS中的数据。

Oozie是用于管理Hadoop作业的工作流调度程序系统,在将Oozie作业提交到Hadoop时会使用委托令牌。 根据定义,经过身份验证的用户向Oozie提供了一份工作,从而导致请求委托令牌。 作为作业提交的一部分,为将来的Hadoop工作提供的委托令牌访问HDFS。 作业的所有结果MapReduce任务都使用关联的委托令牌来完全保护所得的工作。

委派令牌依赖于一种比Kerberos使用的三方身份验证更简单,更高效的两方身份验证。 这种差异最大程度地减少了Kerberos流量,并提高了可伸缩性,并将Kerberos资产上的负载最小化。

更进一步

由Cloudera为Apache Incubator贡献的Sentry,在可扩展身份验证框架方向上迈出了重要一步。 随着Hadoop集群的增长及其多租户的增加,Sentry将为保护敏感数据提供基础,并最大程度地减少以前可能发生的泄漏的可能性。 对于必须遵守严格的数据法规(例如HIPAA或Sarbanes-Oxely Act [SOX])的那些医疗保健,财务或政府部署,Sentry是Hadoop生态系统的一个受欢迎的补充。 尽管Sentry不能解决Hadoop等复杂系统所带来的所有问题,但这是朝着正确方向迈出的一步。 结合其他Hadoop安全项目(例如Knox安全网关和Rhino),Hadoop越来越靠近具有企业功能的安全平台。


翻译自: https://www.ibm.com/developerworks/security/library/se-hadoop/index.html

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树使用JDBC操作数据库数据库操作91333 人正在系统学习中 相关资源:小兵软件安装程序破解版-其它工具类资源-CSDN文库

来源:cuyi7076

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月7日
下一篇 2020年6月7日

相关推荐