设为首页 加入收藏

TOP

《Hadoop高级编程》之为Hadoop实现构建企业级安全解决方案(九)
2014-11-24 00:40:57 来源: 作者: 【 】 浏览:73
Tags:Hadoop 高级 编程 之为 实现 构建 企业级 安全 解决方案
umulo仅是企业安全解决方案的一个方面。企业级安全需要防御纵深,并且必须覆盖整个数据生命周期的安全——而不是仅当数据在Hadoop中保存时。

12.3.2 加密静止数据

Hadoop中静止数据的加密是许多不同项目(一些开源项目和一些商业项目)都在为之努力的一个主题。Hadoop并不原生支持此功能。当前,大量公司正在使用不同的Hadoop发行版来保护敏感数据,这些发行版不仅保护敏感信息,而且遵从法律(例如HIPAA)和其他安全法规。许多组织想要使用静止数据的加密来防止恶意用户尝试获取对DataNode的未授权访问。

当前的一些解决方案包括Gazzang zNcrypt,它为Cloudera CDH发行版提供数据安全性。Intel的Hadoop发行版于2013年初发布,已经在使用Intel公司的Xeon处理器时对加密静止数据进行了优化。看上去每天都有新的解决方案出现——但到目前为止,所有这些方案都受专利保护,或者要求使用某个特定的Hadoop发行版。如第10章中提到的,Rhino项目(由Intel贡献给Apache)包含了一些改进,包括分布式密钥管理和实现静止数据加密的能力。Hadoop开发者社区目前正在针对将其加入到未来的某个Hadoop发行版而进行审查。

无论将何种机制用于实现加密Hadoop中的静止数据,非常重要的一点是也要理解此功能的意外效果。如果需要一个加密静止数据的解决方案,那么要记住加密将会对性能产生影响。如果认为MapReduce作业可能比现在所期望的更慢,那么要想象一下加密静止数据将会对性能产生什么影响。Intel的Hadoop发行版在使用特定Intel处理器的机器上对加密和解密进行了优化。正是由于Intel的发行版在开发时考虑了自己的硬件加速器,因而对企业架构师来说,还有很重要的一点是要评估加密应用程序的静止数据所带来的成本——如果确实需要此功能,那么请为性能做相应的准备。

目前来说,除非迫切需要加密静止数据,否则在此时,可能会有一些原因让你选择避免这样做。首先,由于分布式数据和密钥管理的挑战,这是一个非常复杂的功能领域。第二,Rhino项目在该领域带来的提升可能即将到来,而在此之前,你可能还是会被锁定到某个特定的发行版或提供商。最后,如前文所提到的,会存在与加密静止数据相关的性能损失。如果数据如此敏感,以致于正在探讨加密静止数据可能性的话,那么下一小节可能是一个潜在的解决方案。

12.3.3 网络隔离和分隔方案

如前面提到的,有保密和敏感数据的组织传统上将隔离Hadoop集群网络作为一种满足安全需求的方案。这些组织通常基于用户的授权级别控制对各个集群的访问,将物理安全作为一种保护机制。其他一些组织则使用一种限制较少的方案,即分隔网络,但允许可信的服务器和工作站在网络之间进行一些传输。

此种方案仍然是非常可行的选项,这有许多原因:

● 安全集成的复杂性——如果安全策略非常严格而且数据非常敏感,以至于必须将大量非原生的安全控制集成到Hadoop集群中,那么请考虑使用网络隔离——将它与其他网络分隔开来,并限制仅有授权的用户能够访问。如果这样做,那么只需要考虑Hadoop结果数据集的可见性,而不需要考虑Hadoop运行时安全。这将最小化整体风险,而且最有可能降低成本。

● 性能——人们常说,“安全是性能的敌人”。在某个解决方案中实施的安全机制越多,它通常就会变得越慢。对于保证Hadoop安全来说,情况就是这样的,尤其是如果正在考虑使用第三方工具来加密和解密HDFS上的静止数据的话。许多人将会选择网络隔离方案来简单地避免性能损失。

● 数据的敏感程度不同——组织中的某些数据可能只能对某些人群可见。如果是这种情况,那么Hadoop作业的结果集也将是敏感的。尽管Hadoop中的某些工具(例如HBase和Accumulo)可以提供某种列级别(HBase)和单元格级别(Accumulo)的访问过滤方式,但Hadoop中的其他工具则不提供该级别的安全性。如果正在运行构建结果集的JavaMapReduce应用程序,而且正在使用各种各样的不同工具,那么明智之举就是考虑基于用户的可见性来分隔集群。

● 不断演进的Hadoop安全范畴——大量的Hadoop新产品、发布版本和发行版正在提供新的安全特性。如第10章中提到的,Hadoop安全性增强可能即将在未来一年中到来。这些即将到来的变化将会影响使用Hadoop的企业级应用程序,而在了解这些变化产生的影响之前,很多组织正在选择网络隔离模型。

● 集成之前的数据安全审核——由于网络隔离方案不支持其他网络中的企业级应用程序对数据的实时访问,因此它允许在企业级应用程序使用数据材料之前,对其进行审核和过滤,以最小化潜在的保密性风险和隐私泄露(这当然是一柄“双刃剑”,因为网络隔离通常是实时Hadoop的一个阻碍,而且需要一个发布供企业级应用程序使用的数据集的处理过程)。

网络隔离能够以很多方式实现企业级应用程序安全。图12-3展示了一种做到这一点的方法。某个组织创建了“数据分析”网络,使用物理的“气隙”将其从组织的企业网络中分离,以阻止在两个网络之间传输任何数据。具有适当访问控制权限的数据科学家在数据分析网络中的Hadoop集群上执行查询和MapReduce操作,而且对该网络的访问由物理安全和/或对用于执行查询的客户端机器的认证来控制。

\

图12-3 使用导入/导出工作流的“气隙”网络隔离

为了支持使用这些数据集结果的企业级应用程序,必须开发和应用一个重要的工作流处理过程:

(1) 首先,必须从企业网络适当的数据库和应用程序中抽取待分析的所有数据,将其写入媒介,并带入到隔离的网络中。

(2) 一旦准备好了分析所用的数据而且已经将其加载到了集群中,那么就可以运行HadoopMapReduce作业,直到生成待审查的结果。

(3) 对于结果来说,必须使用由外部企业级应用程序控制的授权策略来标记结果,或者对结果进行过滤,以便删除敏感的、保密的或者受隐私保护的数据。

(4) 一旦过滤或使用访问控制策略标记了此数据集,就可以将该数据集写入到媒介并导入到企业级应用程序。

对于许多组织来说,这是一个繁琐的过程,因为涉及两个网络的物理隔离,而且需要一个工作流——从原始网络中导出数据,将其导入到数据分析网络,并进行分析、过滤,然后准备结果数据集并加载到企业级应用中。然而,当数据尤其敏感时,许多组织还是采取这个方案。

鉴于引入的复杂性,一些组织开始转向一个类似的模型,即一种将流量限定为从企业网络中的可信主机到数据分析网络的方案,如图12-4所示。在这种情况下,ETL过程可以通过网络完成,省去了前面所述处理过程的第(1)步。

\

图12-4 使用单向传输的网络隔离

将Apache Accumulo主要用于对数据进行访问控制的一些组织,会对可以发布到企业网络中的结果数据集执行数据过滤——例如,创建“企业网络用户”,他们的凭据与网络中的最低授权等级相同。基于此用户对待发布数据进行的过滤通常使得结果集更易于在内部发布,而不必担心不经意的信息泄露。

可以以其他无数种方式使用网络隔离——这些只是其中的一部分。其他一些方案包括基于所使用数据的类型隔离Hadoop集群,而某些限制较少的方案包括允许与企业网络中的机器互联,使用AC

首页 上一页 6 7 8 9 下一页 尾页 9/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇cassandra cql order by实验 下一篇海量文件或数据 导致高并发,高流..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: