Hadoop系统框架安全机制,在Hadoop中维护大额安全
分类:pc28.am

当企业转变为数据驱动的机器时,其潜力是巨大的:企业所拥有的数据可能成为获得竞争优势的关键。因此,企业的数据和基础设施的安全也变得比以往任何时候都重要。

什么是集中管控式大数据安全架构,大数据已不再是一个单纯的热门词汇了,随着技术的发展大数据已在企业、政府、金融、医疗、电信等领域得到了广泛的部署和应用,并通过持续不断的发展,大数据也已在各领域产生了明显的应用价值。

Hadoop是开源组织Apache开发的一个开源分布式系统,基于谷歌发表的云计算系统理论实现。它以一种可靠、高效、可伸缩的方式,在普通计算机群上实现海量数据处理。随着越来越多的企业在Hadoop部署应用、存储私密数据,Hadoop的安全问题也开始为人们所重视。Hadoop安全框架存在不小挑战,一方面,由于Hadoop自身安全机制依赖Kerberos、非对称加密的Token认证机制、传输加密机制、基于Linux/Unix系统自带的访问控制机制,在认证、访问、授权等机制存在不足;另一方面,Hadoop一般不是独立运行,而是配合使用生态系统中的其他组件技术,这些技术在安全性上缺乏统一的安全措施。

在许多情况下,企业或组织都可能得到Forrester所说的“有毒的数据”。例如,一家无线公司正在收集谁登录哪一个天线塔、他们在线逗留多长时间、他们使用多少数据、他们是在移动还是处于静止状态等数据,这些数据可用来了解用户行为的状况。

图片 1

1 Hadoop体系架构介绍:

这家无线公司也许有许多用户生成的数据:信用卡号码、社会保险号码、购买习惯数据和用户使用任何信息的方式等。关联这种数据和从这些数据中提取推断结果的能力是有价值的,但是,这种做法也是有害的,如果这种关联的数据泄露到机构外部并且落入他人手中,这将给个人和机构造成灾难性的损失。

企业已开始热衷于利用大数据技术收集和存储海量数据,并对其进行分析。企业所收集的数据量也呈指数级增长,包括交易数据、位置数据、用户交互数据、物流数据、供应链数据、企业经营数据、硬件监控数据、应用日志数据等。由于这些海量数据中包含大量企业或个人的敏感信息,数据安全和隐私保护的问题逐渐突显出来。而这些问题由于大数据的三大主要特性而被进一步放大:数据量大(Volume)、数据增长快(Velocity)和数据多样化(Variety)。现在,当我们说“大数据”的时候,已不再是单指海量的数据了,而是基础设施(云服务器)、应用、数据源、分析模型、数据存储和平台的组合,而正是这些使得大数据安全面临着不同寻常的挑战。

1.1 Hadoop发展历史

应用大数据,不要忘记法规遵从和控制。下面是保证大数据安全的9个技巧。

与传统数据安全相比,大数据安全有什么不同

Hadoop建立在之前的Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 基础上,并于2005年作为Lucene的子项目Nutch的一部分由 Apache基金会正式引入,在随后成为Apache旗下一个单独的开发项目。Hadoop最初由HDFS,MapReuce,Hbase三大核心组件组成,后来发展成为包含HDFS、MapReduce、Hbase、Hive和ZooKeeper等60多个组件的生态系统。在Hadoop的工作中,Map负责分解任务,Reduce负责结果汇总,HDFS负责数据的管理。在互联网领域,Hadoop发展状况良好,脸书的数据挖掘和日志统计、推特的数据存储、百度的日志分析和网页数据库的数据挖掘等领域都使用了Hadoop云计算平台。

1. 在启动大数据项目之前要考虑安全问题。不应该等到发生数据突破事件之后再采取保证数据安全的措施。组织的IT安全团队和参加大数据项目的其他人员在向分布式计算(Hadoop)集群安装和发送大数据之前应该认真地讨论安全问题。

传统数据安全技术的概念是基于保护单节点实例的安全,例如一台数据库或服务器,而不是像Hadoop这样的分布式计算环境。传统安全技术在这种大型的分布式环境中不再有效。另外,在大规模的Hadoop集群中,各服务器和组件的安全配置出现不一致的机率将大大增加,这将导致更多的安全漏洞产生。大数据平台存储着各种各样的数据,每一种数据源都可能需要有其相应的访问限制和安全策略。而当需要整合不同数据源时,就变得更加难以平衡对数据的安全策略的应用。同时,快速增长的海量数据使得大数据平台中的敏感信息和个人隐私信息无处不在,准确发现和定位敏感信息并制定针对性的访问控制策略变得愈加困难,而对敏感信息的访问的实时监控也是保障大数据安全的重要任务之一。最后,大数据技术很少单独使用Hadoop,而是会结合生态系统中的其它技术组件如HBase,Spark,Impala,Hive,Pig等对数据进行抽取、存储、处理、计算等。这些技术使得大数据可被访问和利用,但基本都缺乏企业级的安全特性。以上从平台、数据、技术视角对大数据安全与传统数据安全进行了简单的分析,传统安全工具没有为数据多样化、数据处理及Hadoop的分布式特性而改进,不再足以能保证大数据的安全。

1.2 HDFS框架介绍

2. 考虑要存储什么数据。在计划使用Hadoop存储和运行要提交给监管部门的数据时,可能需要遵守具体的安全要求。即使所存储的数据不受监管部门的管辖,也要评估风险,如果个人身份信息等数据丢失,造成的风险将包括信誉损失和收入损失。

如何建立完善的大数据安全体系

HDFS 是Hadoop平台的分布式文件管理系统[3],是Hadoop最重要的组件之一。它采用 Master/Slaver 架构对文件系统进行管理。一个 HDFS 集群一般由一个NameNode节点和一定数量的DataNodes 节点组成。下面是各类节点在集群中的主要作用:

3. 责任集中。现在,企业的数据可能存在于多个机构的竖井之中和数据集中。集中的数据安全的责任可保证在所有这些竖井中强制执行一致的政策和访问控制。

面对复杂的大数据安全环境,需要从四个层面综合考虑以建立全方位的大数据安全体系:边界安全、访问控制和授权、数据保护、审计和监控。

(1)NameNode节点。NameNode包含HDFS 文件系统的文件目录树及文件索引目录、文件 Block 列表等进行相应的维护,并将这些信息持久化到本地磁盘的镜像文件和编辑日志中中。NameNode 负责对 HDFS 文件系统的命名空间、集群配置信息和文件 Block 块的创建、删除、复制等操作进行管理,并协调接收客户端对 HDFS 文件系统的访问请求,执行相应的文件操作,例如对文件的打开、关闭、重命名等。NameNode 将 HDFS 中的超大文件划分为多个 Block 块,存储在不同的 DataNode。

4. 加密静态和动态数据。在文件层增加透明的数据加密。SSL(安全套接层)加密能够在数据在节点和应用程序之间移动时保护大数据。安全研究与顾问公司Securosis的首席技术官和分析师阿德里安·莱恩(Adrian Lane)称,文件加密解决了绕过正常的应用安全控制的两种攻击方式。在恶意用户或者管理员获得数据节点的访问权限和直接检查文件的权限以及可能窃取文件或者不可读的磁盘镜像的情况下,加密可以起到保护作用。这是解决一些数据安全威胁的节省成本的途径。

• 边界安全:主要包含网络安全和身份认证。防护对系统及其数据和服务的访问,身份认证确保用户的真实性及有效性。Hadoop及其生态系统中的其它组件都支持使用Kerberos进行用户身份验证。

(2)DataNode 是具体任务的执行节点,存在于客户端,承担具体执行任务相关的数据及操作。DataNode 接受 Nmaenode 的统一调度,对文件的 Block 块进行创建、删除、和复制等操作,同时 DataNode 还负责接收处理客户端对文件的读/写请求。

5. 把密钥与加密的数据分开。把加密数据的密钥存储在加密数据所在的同一台服务器中等于是锁上大门,然后把钥匙悬挂在锁头上。密钥管理系统允许组织安全地存储加密密钥,把密钥与要保护的数据隔离开。

• 访问控制和授权:通过对用户的授权实现对数据、资源和服务的访问管理及权限控制。Hadoop和HBase都支持ACL,同时也实现了RBAC(基于角色的访问控制)模型,更细粒度的ABAC(Attibute Based Access Control)在HBase较新的版本中也可通过访问控制标签和可见性标签的形式实现。

(3)DataNode 与 NameNode 间的交互:NameNode 在每次启动系统时都会动态重建文件系统的元数据信息,这时它会以心跳轮询集群中的 DataNode 节点,DataNode 以心跳响应 NameNode,定时向NameNode 发送它所存储的文件块信息。

6. 使用Kerberos网络身份识别协议。企业需要能够管理什么人和流程可以访问存储在Hadoop中的数据。这是避免流氓节点和应用进入集群的一种有效的方法。莱恩说,这能够帮助保护网络控制接入,使管理功能很难被攻破。我们知道,设置Kerberos比较困难,验证或重新验证新的节点和应用可以发挥作用。但是,没有建立双向的信任,欺骗Hadoop允许恶意应用进入这个集群、或者接受引进的恶意节点是很容易的。这个恶意节点以后可以增加、修改或者提取数据。Kerberos协议是可以控制的最有效的安全控制措施。Kerberos建在Hadoop基础设施中,因此,请使用它。

• 数据保护:通过数据加密和脱敏两种主要方式从数据层面保护敏感信息不被泄露。数据加密包括在传输过程中的加密和存储加密。传输过程中的加密依赖于网络安全协议而存储加密可通过相关加密算法和密钥对数据进行加密存储。数据脱敏是比加密较为折中的办法,对于大数据时代,该方法将更被更为广泛的采用。因为收集的海量数据需要相对开放的共享给内部不同团队或外部机构使用,才能发挥大数据的价值。对于敏感信息部分可通过脱敏的方式进行处理以保障信息安全。

1.3 Hadoop的计算框架

7. 使用安全自动化。企业是在处理一个多节点环境,因此,部署的一致性是很难保证的。Chef和Puppet等自动化工具能够帮助企业更好地使用补丁、配置应用程序、更新Hadoop栈、收集可信赖的机器镜像、证书和平台的不一致性等信息。事先建立这些脚本需要一些时间,但是,以后会得到减少管理时间的回报,并且额外地保证每一个节点都有基本的安全。

• 审计和监控:实时地监控和审计可管理数据安全合规性和安全回溯、安全取证等。

MapReduce是Hadoop的核心计算组件[4],被设计用于并行计算海量数据。MapReduce 框架的核心步骤主要分两部分:Map 和 Reduce。当用户向 MapReduce 框架提交一个计算作业时,它会首先把计算作业拆分成若干个 Map 任务,然后分配到不同的节点上去执行,每一个 Map 任务处理输入数据中的一部分,当 Map 任务完成后,它会生成一些中间文件,这些中间文件将会作为 Reduce 任务的输入数据。Reduce 任务的主要目标就是把前面若干个 Map 的输出汇总到一起并输出。

8. 向Hadoop集群增加记录。大数据很自然地适合收集和管理记录数据。许多网站公司开始使用大数据专门管理记录文件。为什么不向现有的集群增加记录呢?这会让企业观察到什么时候出现的故障或者是否有人以为企业已经被黑客攻破了。没有一个事件跟踪记录,你就是一个瞎子。记录MR请求和其它集群活动是很容易的并且可以稍微提高存储和处理需求。但是,当有需要的时候,这些数据是不可或缺的。

如何设计大数据安全框架

本文主要讲解最新的Hadoop2.x(YARN)版本(目前最新的稳定版本为Hadoop2.7)。在YARN中,原先负责资源管理和作业控制功能的JobTracker被遗弃,功能分别由组件 ResourceManager 和 ApplicationMaster 实现。其中,ResourceManager 负责所有应用程序的资源分配,而 ApplicationMaster 仅负责管理一个应用程序。YARN事实上转变成为一个弹性计算平台,它不仅支持 MapReduce,而且支持在线处理的 Storm ,以及近几年来发展势头迅速的Spark等计算框架。

9. 节点之间以及节点与应用之间采用安全通信。要做到这一点,需要部署一个SSL/TLS(安全套接层/传输层安全)协议保护企业的全部网络通信,而不是仅仅保护一个子网。就像许多云服务提供商一样,Cloudera等Hadoop提供商已经在做这件事。如果设置上没有这种能力,就需要把这些服务集成到应用栈中。

基于以上四层的安全体系,结合大数据平台的特性,企业在实践大数据平台安全化时,需要有更详细的架构设计,四层安全体系对应在实际环境中,应是以数据为中心,建立完善的管理制度,先治理好大数据,再从访问控制和数据保护层面加强对数据使用的安全防护,最后从网络和基础层加固平台的安全部署。因此,大数据安全框架需包含以下5个核心模块: 数据管理、身份和访问管理、数据保护、网络安全、基础安全。

2 Hadoop安全机制

...

图片 2

一般而言,系统安全机制由认证(authentication)和授权(authorization)两大部分构成。认证就是简单地对一个实体的身份进行判断;而授权则是向实体授予对数据资源和信息访问权限的决策过程。本文也着重从这两方面展开叙述。

(一)数据管理

2.1 Hadoop早期安全机制

企业实施数据安全的首要任务是先管理好数据,根据业务要求、合规性、安全策略及数据的敏感性,关键性和关联风险对数据进行分类分级管理,有助于对数据保护的基准安全控制做出合理的决策。从大数据特性层面对数据进行标记(例如分析类型、处理方式、数据时效性、数据类型、数据格式 、数据源等维度),就知道数据是如何进出大数据平台,将会被如何使用,会被谁使用,数据是如何存储的等等,这些都有助于数据发现的管理和对数据访问控制制定相应的策略。最后,如果缺乏掌握敏感数据在大数据平台中存在于哪里的意识,这将无疑是把数据暴露于风险之下。所以,掌握敏感数据在大数据平台中分布情况,并能自动地增量式地发现找到敏感数据,并监控其使用情况,是否受到保护是能否做到全面保护数据安全的关键。

Hadoop 的早期用例都是围绕着如何管理大量的公共网络数据,没有考虑保密性。早期版本假定HDFS 和 MapReduce 集群运行在安全的内部环境中,由一组相互合作、互相信任的用户所使用,因而其访问控制措施的目标是防止偶然的数据丢失,而并非阻止非授权的数据访问,因此未对数据传输过程中的通信安全作出合理有效的防范措施。尽管在早期版本中实现了审计和授权控制(HDFS文件许可),然而这种访问控制很容易避开,因为任何用户能轻易模拟成其他任何用户,占有其他用户的资源甚至杀死其他用户的任务。

(二)身份认证和访问控制

随着Hadoop在大数据分析和处理上应用的日益广泛,Hadoop开始开发健全的安全措施,并在随后选择Kerberos作为Hadoop的认证机制,并在Hadoop 0.20版本后采用新的安全措施:

身份认证是防护数据安全的第一道关卡,通过身份认证确保访问大数据平台中的数据、资源和服务的用户是安全的,大数据生态系统中从Hadoop到HBase、Hive、Pig、Impala、Spark等几乎都支持利用Kerberos进行身份认证。Kerberos也可以和企业的AD/LDAP结合以快速建立密钥分发中心,而无需大数据平台用户重新建立用户组、角色和密钥等。用户通过身份认证后可获得访问大数据平台的资格,为进一步控制用户对资源的访问权限,需要通过授权机制来管理不同用户对不同资源的访问许可。Hadoop和HBase及其它组件都在一定程度上支持对访问的控制,RBAC和ABAC是两个不同粒度的访问控制模型,前者是基于角色来进行访问控制,后者是更为细粒度的控制,可控制到被访问对象的字段级别。在制定访问控制策略时,应依据合规要求,结合敏感数据保护策略、数据使用场景等针对不同数据、不同业务需求制定相应的访问限制规则,高效利用数据,发挥大数据价值是企业的最终目的。

(1)在Hadoop RPC(Hadoop 远程过程调用协议)中添加了权限认证机制。用Kerberos RPC (SASL/GSSAPI)来实现Kerberos及RPC连接上的用户、进程及Hadoop服务的相互认证。

(三)数据保护

为HTTP Web控制台提供“即插即用”的认证。网络应用和网络控制台的实现者可以为HTTP连接实现自己的认证机制,包括(但不限于)HTTP SPNEGO认证。当用户调用RPC时,用户的登录名会通过RPC头部传递给RPC,之后RPC使用简单验证安全层(Simple Authentication and Security Layer,SASL)确定一个权限协议(支持Kerberos和DIGEST-MD5两种),完成RPC授权。

如果说身份认证、授权和访问控制是确保了对数据访问的对象的防护和控制,数据保护技术则是从根源层保护信息安全的最重要和最有效的手段。通过数据保护技术,对大数据的开放共享、发布、最大化利用等都会有着最直接的积极作用。数据保护技术的作用不仅局限于企业内部,它是确保整个大数据产业快速发展的最重要保证。数据保护技术通过对数据利用脱敏、失真、匿名化限制发布等技术处理后,可让处理后的数据到达安全交易、开放共享的目的。而对于企业内部,针对脱敏后的数据,不需再设定复杂的访问控制限制,可让更多的分析应用更高效地实施并优化开发项目,让大数据得到更充分的利用同时,也确保遵从行业/监管数据隐私法令和法规。

(2)强制执行HDFS的文件许可。可以通过NameNode根据文件许可(用户及组的访问控制列表(ACLs))强制执行对HDFS中文件的访问控制,用于后续认证检查的委托令牌。为了降低性能开销和Kerberos KDC上的负载,可以在各种客户端和服务经过初始的用户认证后使用委托令牌。委托令牌用于跟NameNode之间的通讯,在无需Kerberos服务器参与的情况下完成后续的认证后访问。委托令牌的安全机制也一直延续到后续版本。

(四)网络安全

(3)用于数据访问控制的块访问令牌。当需要访问数据块时,NameNode会根据HDFS的文件许可做出访问控制决策,并发出一个块访问令牌,可以把这个令牌交给DataNode用于块访问请求。因为DataNode没有文件或访问许可的概念,所以必须在HDFS许可和数据块的访问之间建立对接。

大数据的网络安全通常是指通过客户端访问大数据平台的连接和大数据平台中服务器节点之间的网络通信安全。 为保证数据在传输过程中的安全性,节点之间及客户端与服务器之间的通信都需要进行加密,不同的通信使用不同的加密方式,Hadoop平台支持RPC加密,HDFS数据传输加密和HTTP通信的加密。除了对网络通信进行加密设置,还可通过使用网关服务器隔离客户端与大数据平台的直接访问来进一步升级网络安全。网关服务器部署在大数据平台和企业用户网络域之间,用户通过登录网关服务器来验证身份,并由网关服务代理用户对大数据平台的访问,同时,该服务器还可用来提供访问控制、策略管理。用户通过登录到网关服务器来执行对大数据平台的操作,所有的客户端包括Hive,Pig,Oozie等都可安装在这台网关服务器上,这样用户就不必登录到大数据平台中的服务器节点,从而保护大数据平台不会受到非法访问。

(4)用作业令牌强制任务授权。作业令牌确保任务只能做交给他们去做的作业。也可以把任务配置成当用户提交作业时才运行,简化访问控制检查。

(五)基础安全

进入Hadoop2.x版本后,Hadoop安全机制显著提高。

前面我们谈到了通过各种方式来保证大数据平台和安全性,包括身份认证、授权、访问控制、数据保护及网络通信安全。但大数据平台仍然有可能会受到非法访问和特权用户的访问。为确保合规性的需要,我们需要对大数据平台的一切活动进行审计和监控并生成告警信息,也即是安全事故和事件监控(SIEM)系统。SIEM系统负责对大数据平台中任何可疑的活动进行收集,监控,分析和生成各种安全报告。以下是大数据平台中需要被监控的事件以用来分析识别安全事件:用户登录和身份验证事件、HDFS操作、授权错误、敏感数据操作、MapReduce任务、通过各种客户端的访问如Oozie,HUE等以及异常事件。只有全面的收集在大数据平台中的一切活动,才有机会捕捉可能会发生的安全事故及进行事后分析时有机会进行回溯分析,追踪事故根源。

2.2 Hadoop 2(YARN)的安全机制

结束语

2.2.1 Hadoop 2(YARN)的认证机制

本篇围绕大数据平台对大数据安全的体系和架构设计进行了分析概述,完全实践本文中所设计的安全架构是一项艰巨的任务,在实践过程中,需深入掌握Hadoop自身的安全特性支持,广泛了解开源软件及商业软件在数据管理和数据安全上的优势点,并结合企业现阶段对大数据部署的实际情况选择合适的产品从不同角度保护大数据平台的安全。 在下次的分享中,会从实践(In-Action)的角度介绍如何采用合适的开源技术和商业产品来实现大数据平台安全架构。

在Hadoop中,客户端与NameNode和客户端与ResourceManager之间初次通信均采用了Kerberos进行身份认证,之后便换用委托令牌认证以较小开销,而DataNode与NameNode和NodeManager与ResourceManager之间的认证始终采用Kerberos机制。

接下来分别分析Hadoop中Kerberos和委托令牌的工作原理。

(1)Kerberos认证协议。在一个分布式的Client/Server 体系结构中,Kerberos采用一个或多个Kerberos 服务器提供鉴别服务。首先将需要认证的机器手动将添加Kerberos数据库,并在密钥分发中心和各个节点分别产生密钥表。随后客户端可以和服务器认证,也可以各个节点之间相互认证。当客户端想请求应用服务器上的资源时,首先由客户端向密钥分发中心请求一张身份证明,然后将身份证明交给应用服务器进行验证,在通过服务器的验证后,服务器就会为客户端分配所请求的资源,如图1所示。当节点在Namenode注册时,它必须提供自己的认证密钥并与服务器进行认证,防止存在外部节点冒充内部节点的情况。

Kerberos也有几大缺点:采用对称加密机制,加密和解密使用相同的密钥,安全性有所降低;Kerberos中身份认证服务和授权服务采用集中式管理,系统的性能和安全性也过分依赖于搭载这两个服务的服务器的性能和安全。

(2)委托令牌认证协议。

利用Kerberos获得最初认证后,客户端获得一个委托令牌,令牌赋予节点之间的某些权限。获得令牌后,客户端视情况将它传递给下一个在Namenod上的作业。任何获得令牌的用户可以模仿NameNode上的用户。Hadoop中的令牌主要由下表列出的几个字段组成[5]:

TokenID = {ownerID, renewerID, issueDate, maxDate, sequenceNumber}

TokenAuthenticator = HMAC-SHA1(masterKey, TokenID)

Delegation Token = {TokenID, TokenAuthenticator}

其中关键参数如下:

最大时间(maxData)。每个令牌与一个失效时间关联,若当前时间超过失效时间,则令牌会从内存中清楚,不能再使用。

序列号(sequenceNumber)。每个令牌的产生,都会使序列号增加。

主密钥(masterKey)。主密钥由NameNode随机选择并只有NameNode知道,随后用该密钥来生成委托令牌。

默认情况下,委托令牌有效期是1天。作业追踪器是重建者,跟踪作业的运行情况以更新或取消令牌。由于密钥与令牌之间有一一对应关系,一个密钥产生一个令牌,因此过去7天内的密钥将会被保存,以便回收已经产生的令牌。

令牌赋予了拥有节点权限并保证安全,节点根据令牌种类不同而拥有不同的权限。如持有ResourceManager令牌的应用程序及其发起的任务可以安全地与ResourceManager交互。Application 令牌保证ApplicationMaster与ResourceManager之间的通信安全。

委托令牌也存在缺点:认证用户可以与未认证用户共享委托令牌,这可能造成令牌滥用。

2.2.2 Hadoop 2(YARN)的授权机制

在正式接触YARN授权机制之前,先介绍HDFS的文件访问控制机制。HDFS的文件访问控制机制与当前Unix的一致,即将权限授予对象分为用户、同组用户和其他用户,且可单独为每类对象设置一个文件的读、写和可执行权限。此外,用户和用户组的关系是插拔式的,默认情况下共用Unix/Linux下的用户与用户组对应关系,这与YARN的授权设计思路是一致的。

YARN的授权机制是通过访问控制列表(ACL)实现的。访问控制列表授权了哪些可以访问,哪些无法访问。按照授权实体,可分为作业队列访问控制列表、应用程序访问控制列表和服务访问��制列表。

(1) 作业队列访问控制列表

为了方便管理集群中的用户,YARN将用户/用户组分成若干队列,并可指定每个用户/用户组所属的队列。在每个队列中,用户可以进行作业提交、删除等。通常而言,每个队列包含两种权限:提交应用程序权限和管理应用程序权限(比如杀死任意应用程序),这些可以通过配置文件设置。

(2) 应用程序访问控制列表

应用程序访问控制机制的设置方法是在客户端设设置对应的用户列表,这些信息传递到ResourceManager端后,由它维护和使用。为了用户使用方便,应用程序可对外提供一些特殊的可直接设置的参数。以MapReduce作业为例,用户可以为每个作业单独设置查看和修改权限。默认情况下,作业拥有者和超级用户(可配置)拥有以上两种权限且不可以修改。

(3) 服务访问控制列表

服务访问控制是Hadoop提供的最原始的授权机制,它用于确保只有那些经过授权的客户端才能访问对应的服务。比如可设置访问控制列表以指定哪些用户可以向集群中提交应用程序。服务访问控制是通过控制各个服务之间的通信协议实现的,它通常发生在其他访问控制机制之前,比如文件权限检查、队列权限检查等。

该授权机制的缺陷是,由于需要维护大量的访问控制列表,授权也给系统带来了不小的开销。

2.2.3 Hadoop 2(YARN)的其他安全机制

(1)加密机制

对于静态数据,Hadoop提供两种方式进行保护:一是文件先进行加密,再存储在Hadoop节点中;二是一旦数据加载到Hadoop系统中,立即申请对数据块的加密。对于动态数据,传输进或传输出的数据,Hadoop可以提供认证与安全层(SASL)认证进行加密。其中核心加密技术常用MD5-DIGEST,在此基础上搭载加密的安全协议有如下三种:

a. SASL安全协议加密

SASL提供了MD5-DIGEST等可选的不同种类的保护服务,具有提供认证,保护消息数据完整性、机密性等功能。

b. HDFS文件传输加密

HDFS现存的数据服务协议封装了简单的认证与安全握手协议。认证后,NameNode产生数据加密密钥并将数据信息(如数据块位置、数据块标志、访问令牌等)发送到客户端,成为MD5-DIGEST的凭证。

c. 安全套接层(SSL)

首先需要配置SSL来加密HTTP协议。为了避免恶意用户访问Reduce后的输出结果,Reduce任务计算请求的HMAC-SHA1,并通过作业令牌加密当前时间戳。任务追踪器将利用该HMAC-SHA1与请求中发送的HMAC-SHA1。如果计算出的HMAC-SHA1是URL中的一个,任务追踪器将会相应请求。

(2)审查日志(Audit Log)

Hadoop部署了一个日志审查监控系统,管理和报告系统变化情况。

措施:

(3)资源控制

YARN中可以控制最低限度的网络消耗,最低限度的资源、线程、进程的消耗,来保障系统的稳定和安全性。

2.3 Hadoop 2(YARN)面临的安全威胁

除了上述几大安全部分所具备的缺陷,作为一个开源云计算平台,Hadoop面临的威胁有:

(1)集中控制模式不够健壮。在HDFS中,NameNode中保存了所有元数据信息。一旦NameNode出现故障或者遭受恶意攻击,会使得整个系统不能运行。虽然Hadoop中存在一个SecondNameNode,但它只是保存了 NameNode中某一时间点的信息和之后的操作日志,在NameNode发生故障时不能立即对NameNode中的数据进行迅速恢复,不能保证运行的任务不被中断。

(2)基于ACL的访问控制机制过于简单。Hadoop中采用简单的访问控制机制,对访问权限的设定与Linux—样,存在可读、可写、可执行三个权限,但此简单的访问控制机制显然不能对数据进行很好的保护。

(3)过于依赖Kerberos。在整个Hadoop集群中,只存在一个Kerberos服务器,这个服务器负责集群中所有节点的访问控制。当Hadoop中节点的数量变大时,Kerberos负担会加重。若在某一时刻很多节点向服务器请求访问Token,可能会超出服务器的处理能力。此外,这也是Hadoop中心控制问题的一个表现,若Kerberos服务器出现故障,则整个集群都无法运行。

(4)无法应对恶意的网络攻击。Hadoop在设计时没有对可能遭受的网络安全问题进行考虑,Hadoop中没有对应的网络安全防护措施,很容易受到诸如Ddos的攻击,因此Hadoop对网络安全的防护只能借助第三方的工具。

(5)大数据用户只能寻求第三方工具维护安全

因为比较缺乏安全维护,目前Hadoop上诞生了一定数量的企业级安全解决方案,比如Cloudera Sentry、IBM InforSphere Optim Data Masking、DataStax企业版、DataGuise for Hadoop、英特尔的安全办Hadoop、Protegrity大数据保护器等。这些企业级安全解决方案一定程度上改善了Hadoop的安全状况。此外,Apache Ranger,Apache Rhino, Apache Knox, Gateway等Apache 支持的安全项目也使Hadoop运行的安全环境得到极大改善。

reference:

陈玺, 马修军, 吕欣. Hadoop生态体系安全框架综述[J]. 信息安全研究, 2016, 2(8):684-698.

缪璐瑶. Hadoop安全机制研究[D]. 南京邮电大学, 2015.

下面关于Hadoop的文章您也可能喜欢,不妨看看:

Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 6.3下Hadoop伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS下安装Hadoop 1.2.1(伪分布模式) http://www.linuxidc.com/Linux/2016-09/135406.htm

Ubuntu上搭建Hadoop环境(单机模式 伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm

实战CentOS系统部署Hadoop集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

Hadoop 2.6.0 HA高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

在Ubuntu X64上编译安装Hadoop http://www.linuxidc.com/Linux/2016-12/138568.htm

CentOS 6.7安装Hadoop 2.7.3  http://www.linuxidc.com/Linux/2017-01/139089.htm

CentOS7 Hadoop2.5.2 Spark1.5.2环境搭建  http://www.linuxidc.com/Linux/2017-01/139364.htm

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139675.htm

图片 3

本文由pc28.am发布于pc28.am,转载请注明出处:Hadoop系统框架安全机制,在Hadoop中维护大额安全

上一篇:怎么不让别人ping服务器,Windows和Linux下取缔被 下一篇:没有了
猜你喜欢
热门排行
精彩图文