kerberos风险及缺点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于手上负责的hadoop集群需要对公司外部提供服务,所有会有多个部门访问我们的hadoop 集群,这个就涉及到了hadoop的安全性。
而hadoop的安全性是很弱的,只提供类似linux文件系统的帐户权限验证,而且可以通过简单的手段冒充用户名,如果有恶意用户,直接冒充为hadoop的super用户,那整个集群是很危险的。
hadoop支持kerberos,希望可以通过kerberos,限制恶意用户伪造用户。
预研过程中,发现kerberos生成证书和配置的步骤相当繁琐,首次配置也可以接受,但是对于用户权限的修改,机器的减容扩容,感觉会造成证书要重新生成,再分发证书,重启hadoop。而且还要考虑kerberos的宕机导致整个集群无法服务的风险,加上kerberos的东西也比较复杂,这些考虑,让我觉得上kerberos很可能会导致hadoop集群运维的不便。
于是咨询淘宝云梯管理员罗李,问他hadoop和kerberos是否很不好用,他回复:很不好用。给个案例,支付宝去年到今年上半年用了这东西,效率极低运维困难,下半年换成云梯版本后效率大涨连扩容都省了。
最后总结,hadoop权限方面,kerberos还是不适合,也许真的只能自己像云梯一样,修改hadoop源代码,添加自己的权限验证体系。
使用kerberos认证的缺点
存在单点失败:它需要KDC中心服务器的服务。当KDC挂掉时,整个系统有可能瘫痪。Hadoop 花了很多时间来解决namenode的单点问题。幸亏这个缺陷可以通过使用复合Kerberos服务器和缺陷认证机制弥补Kerberos需要时间同步技术,Kerberos要求参与通信的主机的时钟同步,如果主机的时钟与Kerberos服务器的时钟不同步,认证会失败。默认设置要求时钟的时间相差不超过10分钟。通常用网络时间协议后台程序(NTP)来保持主机时钟同步。配置非常繁琐,通常配置好一个100个节点的服务器,需要三天时间。而且还会存在一个大的问题:用户权限的问题,原来系统上的数据不能访问。这一点还需要完善。因为所有用户使用的密钥都存储于中心服务器中,危及服务器的安全的行为将危及所有用户的密钥。
总结
Kerberos是一种性能比较高的认证和授权,并且能够进行数据加密的安全系统,但是并不是特别适合hadoop,原因有三点:1. Hadoop集群节点数多,配置和维护一个使用kerberos系统高性能,稳定的hadoop集群难度非常高。2. Hadoop中的hdfs是一个文件系统,用户的认证和授权比较复杂,难度不低于linux系统的用户和组管理。加上kerberos后,用户和用户组的管理更加复杂,通常一个合适的用户不能访问hdfs上的文件。3. Hadoop加上kerberos 后,通常原来的用户和文件,可能都失效导致数据流失。尤其是一些根目录,往往需要格式化整个系统才能使用。增加一个新用户也是比较难的。因为要考虑各个节点间的访问权限。我认为可能轻量级的LDAP会适合hadoop系统,后面有时间来实现一下。