首页 理论教育Hadoop内置安全机制-云安全深度剖析

Hadoop内置安全机制-云安全深度剖析

【摘要】:目前,Hadoop内置的安全机制主要如下:1)在RPC连接上进行双向认证。从以上的描述可以看出,Hadoop内置的安全机制主要是依赖Kerberos协议。因此,很多厂商近年来纷纷采取措施,积极应对Hadoop的安全性问题。但是,有些安全问题可能需要第三方的Hadoop安全补充工具来解决。尽管Hadoop能基于用户及群组许可和访问控制列表进行授权,但还不能完全满足企业严格的安全性需求。

目前,Hadoop内置的安全机制主要如下:

1)在RPC连接上进行双向认证。Hadoop的客户端通过Hadoop的RPC访问相应的服务,Hadoop在RPC层中添加了权限认证机制,所有的RPC都会使用SASL/GSS API进行连接。其中SASL协商使用Kerberos或DIGEST-MD5协议。

2)HDFS使用的认证。一方面指强制执行HDFS的文件许可,使用Kerberos协议认证和授权令牌认证,这个授权令牌可以作为接下来访问HDFS的凭证,即可以通过NameNode,根据文件许可强制执行对HDFS中文件的访问控制;另一方面指用于数据块访问控制的块访问令牌。当需要访问数据块时,NameNode会根据HDFS的文件许可做出访问控制决策,并发出一个块访问令牌给客户端,只有使用这个令牌才能从相应的DataNode获取数据块。因为DataNode没有文件或访问许可的概念,所以必须在HDFS许可和数据块的访问之间建立对接。

3)用作业令牌强制任务授权。作业令牌是由JobTracker创建的,传给TaskTracker,确保每个Task(任务)只能做交给它去做的任务,也可以把Task配置成当用户提交作业时才运行,简化访问控制检查。这样就防止了恶意用户使用Task干扰TaskTracker或者其他用户的Task。

4)HDFS在启动时,NameNode首先进入一个安全模式,此时系统不会写入任何数据。在安全模式下,NameNode会检测数据块的最小副本数,当一定比例的数据块达到最小副本数如3时,系统就会退出安全模式,否则系统会自动补全副本以达到一定的数据块比列。

5)当客户端从HDFS获得数据时,客户端会检测从DataNode收到的数据块,通过检测每个数据块的校验和来验证这个数据块是否损坏。如果损坏则从其他DataNode获得这个数据块的副本,以保证数据的完整性和可用性。(www.chuimin.cn)

从以上的描述可以看出,Hadoop内置的安全机制主要是依赖Kerberos协议。然而,该协议并没有涵盖企业在安全方面的需求,如基于角色的验证和LDAP的支持等。因此,很多厂商近年来纷纷采取措施,积极应对Hadoop的安全性问题。但是,有些安全问题可能需要第三方的Hadoop安全补充工具来解决。其原因如下:

1)静态数据不加密。目前HDFS上的静态数据没有加密。那些对Hadoop集群中的数据加密有严格安全要求的组织,被迫使用第三方工具实现HDFS层面的加密,或安全性经过加强的Hadoop版本。

2)以Kerberos为中心的方式。Hadoop依靠Kerberos进行身份验证。对于采用其他身份认证方式的组织而言,这意味着他们要单独搭建一套认证系统。

3)有限的授权能力。尽管Hadoop能基于用户及群组许可和访问控制列表进行授权,但还不能完全满足企业严格的安全性需求。因此,对于企业自身而言,需要自行实现合适的基于角色的安全访问机制。比如有的组织基于XACML和基于属性的访问控制,使用灵活动态的访问控制策略。

4)安全模型和配置的复杂性。Hadoop的认证有几个相关的数据流,用于应用程序和Hadoop服务的Kerberos RPC认证,以及使用代理令牌、块令牌和作业令牌等。对于网络加密,也必须配置几种加密机制,用于SASL机制的保护质量等。所有的这些设置都要分别进行配置,并且很容易出错。