设为首页 加入收藏

TOP

《Hadoop高级编程》之为Hadoop实现构建企业级安全解决方案(一)
2014-11-24 00:40:57 来源: 作者: 【 】 浏览:68
Tags:Hadoop 高级 编程 之为 实现 构建 企业级 安全 解决方案

本章内容提要\

● 理解企业级应用的安全顾虑

● 理解Hadoop尚未为企业级应用提供的安全机制

● 考察用于构建企业级安全解决方案的方法

第10章讨论了Hadoop安全性以及Hadoop中用于提供安全控制的机制。当构建企业级安全解决方案(它可能会围绕着与Hadoop数据集交互的许多应用程序和企业级服务)时,保证Hadoop自身的安全仅仅是安全解决方案的一个方面。各种组织努力对数据采用一致的安全机制,而数据是从采用了不同安全策略的异构数据源中提取的。当这些组织从多个源获取数据,接着提取、转换并将数据加载到Hadoop时,随着结果数据集被导入到企业级应用中,安全挑战甚至变得更加复杂。例如,当从Hadoop作业中产生的数据集代表着多个数据集的组合时,应该如何对初始数据集实施访问控制策略?

更为复杂的是,许多组织发现Hadoop提供的安全级别不能满足它们的安全规章需求,而且它们必须补充Hadoop的安全模型。例如,为了满足其规章要求,一些组织需要加密静止的数据——这是Hadoop原本不提供的功能。还有,其他一些组织要求Hadoop查询为进行分析查询的数据科学家提供某个粒度级别的、基于属性的访问控制。尽管这当然包含在Hadoop安全未来的路线图中(如第10章中的讨论),但当前对这些功能的需求远远超过了Hadoop自身的支持能力。

鉴于这些挑战,必须使用一种整体的(而非以Hadoop为中心的)安全方案来开发企业级解决方案。当然,可以使用Hadoop中的原生安全机制来满足部分安全需求,但在许多组织中,你会发现Hadoop的安全机制并不能解决所有问题。必须为使用Hadoop的企业级应用策划、设计和补充其他安全机制,请查看企业级“蓝图”。

如第10章中的讨论,Hadoop在设计和开发时没有考虑安全性,而且在很长的一段时间里,Hadoop实现都几乎没有安全性。社区早期所采用的一个假设是Hadoop集群将由相互协作的、可信的机器组成,并由在可信环境中的可信用户使用。从较早的时间起,Hadoop社区采用了一种新的安全架构,使用了新的安全控制(如第10章中的讨论),但许多需要显式访问控制限制、保密规则、隐私保护和遵从法规的组织仍然不能使用Hadoop生态系统中的基础工具来满足其安全需求。由于想要使用Hadoop的功能,因此这些组织不得不将安全方案构建到其他工具中,或者设计不同方式的Hadoop使用方案。

本章是为那些想要使用Hadoop,但却必须满足安全性要求的企业级应用开发者而编写的。重要的是要理解大多数企业级应用都需要遵从组织的安全需求。这可能包含了与身份和访问管理基础设施、其他网络基础设施的相互结合,也可能意味着要应用尚未与“新来的”Hadoop集成的其他安全控制。本章给出了用于满足这些需求的方法论和可能的解决方案。

本章最开始简要地概述开发使用Hadoop的企业级应用时可能遇到的安全顾虑。接着讨论Hadoop安全尚未提供的机制,并给出了一系列用于构建使用Hadoop的企业级安全解决方案的方法,并包括一些实际示例。最后,本章简要地涵盖了可以在Hadoop发行版中使用的另外一个工具所提供的安全性——该工具是ApacheAccumulo,它是一个高度安全的数据存储和检索系统,由美国国家安全局(NSA)最初构建在Hadoop之上,用于细粒度访问控制的目的。

12.1 企业级应用的安全顾虑

当构建Hadoop解决方案时,考虑保证Hadoop自身的安全(如第10章中的讨论)并不是唯一重要的事情,理解安全策略的蓝图和以数据为中心的视角也很重要。

正如在图12-1中看到的那样,必须要理解Hadoop数据生命周期。当构建Hadoop解决方案时,会存在一个过程,即从信息源获取数据集、将数据集加载到Hadoop集群、运行查询和分析,以及使用结果集。随着数据的流动,安全架构师的目标就是确保在整个数据生命周期中实施了全部的访问策略。

不考虑涉及的工具,数据从各式各样的数据源提取出来、转换成某种常用格式并加载到Hadoop集群的HDFS上,这通常被称为提取(Extract)、转换(Transform)和加载(Load)过程(ETL过程)。数据分析师接着运行一系列MapReduce作业,并执行产生结果集的查询,而结果集通常又反过来用于企业级应用。

这里面临的挑战是多方面的。你必须能够在数据穿越整个生命周期的过程中保护它,以遵从原始的安全策略。由于数据要经过提取、加载并与集群机器上的其他数据集相组合,而且其他应用程序还会使用结果集,因此这可能会是一个挑战。

\

图12-1 Hadoop数据生命周期中的安全顾虑

图12-1很好地概括了本章所考察的一些顾虑。要构建涉及Hadoop的企业级安全解决方案,架构师们必须理解信息安全基础,以及如何应用它们。这里需要对用于Hadoop解决方案的大量安全目标进行一些解释,而且理解最佳实践取决于对安全顾虑和相关术语的理解。此讨论的目的不是给出一个详尽的清单或者解释每一个安全顾虑,而是提供一个对应于安全目标的简要信息安全词汇表,这些都是企业架构师需要了解的。每个目标中都有术语的定义,因而可以理解它们为什么在Hadoop上下文中很重要。

12.1.1 认证

认证意味着验证某个主体的身份。主体可能是某个系统中的用户、应用程序、任务或者其他“执行者”。如第10章的讨论,可以将Hadoop配置为使用Kerberos来认证用户、服务和Hadoop集群中的服务器。认证可以为用户和服务所声称的身份提供一定程度的保证,并且阻止用户、任务和服务被恶意系统冒充。

还应该提到的一点是,并非每个组织都有用于在Hadoop之外进行认证的企业级Kerberos部署。企业级应用可能需要将其他身份和访问管理基础设施进一步集成到自身的解决方案中。

12.1.2 授权

授权意味着确定某个主体有权限做什么。主体的身份在认证中验证之后,系统必须确定主体的授权凭据,并将它们与既定的授权策略相比较来提供对被请求资源的访问。如第10章中的讨论,Hadoop当前提供某个级别的访问控制,通过使用访问控制列表(ACL)来表达对Hadoop某些方面的访问控制策略,并使用类似UNIX的文件访问权限来表达所有者和组用户的访问权限。

除了Hadoop提供的机制之外,大多数企业组织还有用于授权的额外控制。例如,一个组织可能有以下所列举的一个或多个机制:

● 轻量级目录访问协议(LDAP)目录或活动目录(AD)实例——用于为主体保存组、角色和访问权限。

● 属性服务——将属性用作主体的授权凭据。

● 安全令牌服务(STS)——用于发放与主体授权凭据相关的令牌,以及用于发放事务中的授权决策。

● 策略服务——使用一些标准,例如可扩展访问控制标记语言(XACML)和安全断言标记语言(SAML),来表达资源的访问控制策略,并为主体提供访问控制决策。

使用Hadoop的企业级解决方案可能需要基于自己组织的企业级访问控制策略来控制对数据集的访问,这通常意味着要使用其他机制来补充Hadoop原生的授权控制。

需要记住的是,在整个数据生命周期中保持一致性的授权很重要。如果原始数据源有对数据的访问控制策略,那么对你来说很重要的一点就是为对这些数据运行查询的数据科学家们提供相同的访问控制。对所有后续导入到企业

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

评论

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