一、概述
Hadoop开源技术框架在实际业务应用中,其早期的安全机制饱受诟病,具体到HDFS应用方面的问题,主要包括以下几个方面:
1.用户到服务器的认证问题
(1)Namenode上没有用户认证:用户只要知道NameNode服务地址和端口信息,就可以访问HDFS,并获取文件namespace信息。
(2)Datanode上没有认证机制:Datanode对读入输出并没有认证,导致如果客户端知道Blockid,就可以任意的访问Datanode上的Block数据。
2.服务器到服务器的认证信息
(1)Namenode对Datanode没有认证机制:非法用户可以伪装成Datanode,去接收Namenode的文件存储任务。
二、hadoop的Security
针对用户到服务器的认证问题,Hadoop在1.0.0版本以后增加了Security认证机制。该机制采用类Unix用户管理机制,文件的创建用户和超级用户拥有对文件的所有权限,包括读和写,其他用户拥有访问权,无写权限。具体来讲就是,连接到hadoop 集群的用户/组信息取决于客户端环境,即客户端主机中`whoami`和`bash –c groups`取到的用户名和组名,没有uid和gid,用户属组列表中只要有一个与集群配置的用户组相同即拥有该组权限。
值得注意的是当前Hadoop的三个主要版本分支中并不是都实现了对其的支持,具体实施时需要注意不同版本的区别。
三、hadoop的kebores
Hadoop的Kebores认证机制,用来解决服务器到服务器的认证,主要涉及云盘系统后台服务分布式集群安全问题,将另开专题讨论。在此不作讨论。
四、云盘系统客户端文件安全保障
云盘系统客户端HDFS文件安全保障主要涉及用户对HDFS文件服务集群的安全访问问题,包括某一个注册用户只能访问属于该用户的空间和某一个用户只能在HDFS空间上访问指定大小的空间两个问题。这里面是涉及一个用户管理和空间管理的问题,在此不作详细介绍。
针对问题一,我们可以通过改造现有HadoopThriftServer或者新增服务机制来解决,即客户端登陆时,返回HDFS上该用户的允许访问路径,用户操作过程中进行访问路径检测,非授权路径自动过滤,不允许访问。
针对问题二,提供用户注册机制,服务端根据用户注册的权属组,调用FSadmin设置用户文件夹的授权大小。
原文链接:http://www.cnblogs.com/hadoopdev/archive/2013/03/07/2947822.html
【编辑推荐】