问题导读

1.hadoop简单模式如何认证?

2.kerberos认证存在什么问题?



hadoop 用户免密登陆 hadoop用户认证_hadoop






1.简单模式

  这种模式,配置简单,使用简单。

  core-site.xml添加

1. <property>
2.         <name>hadoop.security.authorization</name>
3.         <value>true</value>
4.     </property>
5.     <property>
6.         <name>hadoop.security.authentication</name>
7.         <value>simple</value>
8.     </property>

复制代码

hadoop.security.authentication可以不用配,默认就是simple的。

  hadoop-policy.xml,是设置各种服务对应的可登陆的用户和组,*自然是所有的,看里面的注释就可以了,或者直接看官方文档http://hadoop.apache.org/docs/r2 ... rviceLevelAuth.html,里面有详细的介绍和使用方式。

  可登录的用户在列表里面,实际运行时,还要看用户对各种资源的rwx权限,这个权限要用“hadoop fs”相关的命令进行设置了,和linux系统下设置文件权限是一样的。

  问题在于这种登录,有个用户名就可以,安全性不高啊,果然是简单模式。实际应用时,就自己用用还是可以的,搭配下防火墙应该问题不大。但是,如果要对外提供服务啥的,这问题还是不小的,伪造个用户名连接上服务,只要一行代码设置环境变量就伪造好了。。。


  2.kerberos认证

  官方文档先挂上http://hadoop.apache.org/docs/st ... mon/SecureMode.html   core-site.xml

1. <property>
2.         <name>hadoop.security.authorization</name>
3.         <value>true</value>
4.     </property>
5.     <property>
6.         <name>hadoop.security.authentication</name>
7.         <value>kerberos</value>
8.     </property>

复制代码  接着就是安装kerberos,再就是一堆的配置啥的,然后,看到篇文章介绍支付宝hadoop集群使用kerberos的情况,里面所说,对于用户权限的修改,机器的减容扩容,会造成证书要重新生成,再分发证书,重启hadoop,而且还要考虑kerberos的宕机导致整个集群无法服务的风险,还有支付宝的那个例子,运维都难,还是不用了。。。

  3.看来是要修改hadoop源码,添加自己的验证体系了。


######################################################################

hadoop和kerberos的整合总结存在的问题


由于手上负责的hadoop集群需要对公司外部提供服务,所有会有多个部门访问我们的hadoop集群,这个就涉及到了hadoop的安全性。


而hadoop的安全性是很弱的,只提供类似linux文件系统的帐户权限验证,而且可以通过简单的手段冒充用户名,如果有恶意用户,直接冒充为hadoop的super用户,那整个集群是很危险的。


hadoop支持kerberos,希望可以通过kerberos,限制恶意用户伪造用户。


预研过程中,发现kerberos生成证书和配置的步骤相当繁琐,首次配置也可以接受,但是对于用户权限的修改,机器的减容扩容,感觉会造成证书要重新生成,再分发证书,重启hadoop。而且还要考虑kerberos的宕机导致整个集群无法服务的风险,加上kerberos的东西也比较复杂,这些考虑,让我觉得上kerberos很可能会导致hadoop集群运维的不便。


于是咨询淘宝云梯管理员罗李,问他hadoop和kerberos是否很不好用,他回复:很不好用。给个案例,支付宝去年到今年上半年用了这东西,效率极低运维困难,下半年换成云梯版本后效率大涨连扩容都省了。


最后总结,hadoop权限方面,kerberos还是不适合,也许真的只能自己像云梯一样,修改hadoop源代码,添加自己的权限验证体系。