搜索
查看: 2778|: 0

12.1 企业级应用的安全考量

[复制链接]

152

主题

47

回帖

2991

积分

管理员

积分
2991
发表于 2014-2-19 01:02:34 | 显示全部楼层 |阅读模式
12.1 企业级应用的安全考量

在构建Hadoop解决方案的时候,不仅是考虑Hadoop自身的安全性(如第10章所讨论的那样)很重要,另外要理解全局安全策略以及以数据为中心,这两点也很重要。

如图12-1所示,你需要理解Hadoop数据的生命周期。在构建Hadoop解决方案的时候,数据的生命周期包括:从信息源提取数据,装载数据到Hadoop Cluster中,运行查询,以及分析,到最终利用结果数据。当数据到达的时候,安全框架的目标就是确保整个数据的生命周期中所有的安全策略都能被强制执行。


不管使用到的工具,数据可以从很多数据源中提取数据,转换为通用的数据格式,然后被装载到Hadoop集群中的HDFS上面去,这个过程通常会被称为:抽取,转换以及装载的过程(ETL)。数据分析师可以接着运行一些列的MapReduce 工作,以及执行能够产生解决集的查询,这也就是企业级应用所典型的利用Hadoop的方式。

这里的挑战是多方面的,你必须能够在数据生命周期之间的迁移过程中,保证数据的安全性,要坚持最初的安全策略。数据被抽取、装载、和集群中其他机器上面的数据组合、以及产生最终会被其他应用使用的结果集,整个过程都是一个挑战。

图12-1给出关于安全考量点的一个很好的一览,这些安全考量会在本章中被检测。要建立牵涉Hadoop的安全的企业级应用,架构师们需要理解信息安全的基础,以及他们是如何被应用的。利用Hadoop的解决方案中很多安全目标需要解释,要明白最优方法依赖于理解这些安全考量以及相关术语的含义。这里的讨论没有提供一份详尽的安全考量点的清单或者是关于每一个安全考量的详细解释,只是提供了作为企业架构师需要知道的为了达到安全目标的简略的信息安全词汇列表。对于每一个术语定义的目标,你会学习在Hadoop环境中,认识到为什么是重要的。

认证
认证就是识别一个主体的身份。一个主体可以是一个用户,一个应用,一个任务,或者系统中其他的角色。就如第10章中所讨论的那样,Hadoop可以被配置使用Kerberos来认证用户,服务,以及Hadoop集群中服务器。认证确保了用户和服务正如他们的所表明的身份那样是可靠的用户和服务,阻止了来自于其他恶意系统的模仿的用户、服务、任务。


需要提及的是,并不是所有的企业在Hadoop系统之外都部署了一套企业级的Kerberos系统来作为认证系统。企业级的应用可能需要把其他的身份访问管理基础设施集成进入他们的应用。

授权
授权就是决定一个主体能够拥有什么样的权限,在主体通过了认证之后,系统必须确定主体的特许凭证,并且需要将主体的特许凭证和一个授权策略做比较,以给主体提供对请求的资源的访问许可。如第10章所述,目前Hadoop提供一种访问控制级别,这种访问控制利用访问控制列表(ACLs)来表述访问控制策略,非常类似于UNIX的用户-组的用户权限。



除了Hadoop自身提供的授权机制,大多数企业机构都采用了另外的授权机制。例如,一个企业机构可能拥有以下一种,或者多种授权机制:
➤轻量级目录访问控制(简称OLAP)目录、或者活动目录(AD)实例,这两种方式都保存了主体的组、角色以及权限。
➤属性服务,这种方式使用属性作为主体的特许凭证
➤安全令牌服务(Security Token Services简称STS),这种授权机制是分配与主体的特许凭证对应的令牌,并分配授权决策事务。
➤策略服务(Policy Services),该机制是用可扩展访问控制标记语言(eXtensibleAccess Control Markup Language 简称XACML),或者安全断言标记语言(Security Assertion Markup Language简称SAML)来表述对资源访问控制策略,并为主体提供访问控制决策。

使用Hadoop的企业应用需要根据他们自身组织的访问控制策略来控制对数据的访问,也就是说要利用其它的机制来补充Hadoop自身的授权控制。

需要记住的是,在数据的整个生命周期中实施授权控制的一致性是很重要的。如果你的初始数据源自身就拥有对于他们的数据的访问控制策略,为查询数据的数据科学家提供同样的访问控制策略很重要。同样,对于之后产生的需要被导入到企业应用中的结果集来说,采用恰当合适的访问控制更加重要。这确实是一个挑战。

机密性
机密性就是限制敏感数据,用户只能看到被授权了的允许看到的部分数据。当敏感数据在网络上传输的时候,这就需要在数据传输过程中,数据不能被偷听者读取。这可以用过网络加密来实现。一些企业需要磁盘加密,或者是静态数据加密,静态数据加密就是数据只在被存储地方被加密,减少了未受保护数据的被盗窃的风险。


在第10章中,我们学习到Hadoop提供了网络加密的功能和机制。然而,Hadoop没有提供对静态数据的加密功能。在本章的后面的章节,你可以学习到达到静态数据加密这一目标的集中策略。

完整性
完整性确保了数据在传输过程中或者是落地之后(成为静态数据)不能够被更改。完整性可以通过加密完成,该加密可以利用信息摘要,哈希码,或者是数字签名的副影响。当Hadoop被配置成采用网络加密的时候,Hadoop会在传输过程中保证数据的完整性。


静态数据就是另外一种情况,幸运的是,Hadoop保证了静态数据的完整性,他通过采用副本形式保证数据可靠性。数据的完整性以及可靠性是Hadoop系统的健壮性,以及他的分布式架构的一个有意的附加影响。由于HDFS被设计成运行在标准化商用硬件上面,用在不同节点上面拷贝数据的方式来达到容错的目的,正是由于数据副本的数目,校验和检查机制,冲突检测机制,Hadoop为保存在HDFS上面的数据提供了一套保证数据完整性的健壮的机制。

然而,安全架构师有时会提议一种担心,这就是如果Hadoop当中的一个节点缺乏抵抗能力,一个恶意的用户可能会修改数据,那么这就会歪解数据分析的结果,这种情况完全可能发生,但是使用Hadoop的安全机制(服务器/服务 认证,数据完整性确认等等),配合深度防御策略,企业级解决方案架构师能够减少这个风险。

审计
大多数的公司都会采用安全审计来保证合规事项的保密性,以及识别潜在的安全缺口。Hadoop当然可以被配置成记录所有的访问日志-NameNode上面保存一份本地日志,一个审计日志记录器可以被配置将访问信息写入一个特定的安全卷上面以保证日志的完整性。企业当然也可以在授权和认证方面拥有更多的需求。


注意:尽管关于经典安全目标的大多数的描述都关注机密性,完整性,以及可使用性,这里的描述却关注认证、授权、机密性、完整性以及审计,这是由于这些都是企业应用的安全的关键方面。可使用性(确保能够访问Hadoop)当然也是很重要的,这点在Hadoop设计的时候就已经被关注了。Hadoop是高度可靠的,对于可使用性,Hadoop包含一条重要的跟踪记录,Hadoop同时能够部署你企业内部的其他的安全机制(比如入侵检测系统),来保护系统避免受到Dos攻击。这些都不会在本章讨论,因为这个讨论主要面向于企业应用的开发者。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
大数据中国(http://www.bigdatas.cn),以数据的力量改变生活!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 17:37 , Processed in 0.097168 second(s), 29 queries .

快速回复 返回顶部 返回列表