本文转载自微信公众号「明哥的IT随笔」,作者IT明哥。转载本文请联系明哥的IT随笔公众号。
1 前言
大家好,我是明哥!
在博文“从技术视角看大数据行业的发展趋势”中,我们提到大数据的一个发展趋势是日益重视数据安全。在数据安全上,有四个方面的问题需要解决,即 3A + 1E:
从技术视角看大数据行业的发展趋势
- 3A 是指 authentication, authorization 和 audit 即认证,授权和审计,分别解决了用户身份校验,用户权限校验,事后审计监督的问题;
- 1E 指的是 encryption 即加密,包括对静态数据的加密和对传输过程中数据的加密。
- 在3A+1E中,authentication 用户认证是基础。试想,如果用户身份验证没有做好,那么就可能冒用别人的身份,安全也就无从谈起了;
- 在大数据领域,解决 authentication 用户认证问题,事实上的标准是 Kerberos, 常见的主流大数据框架,都支持 kerberos 认证方式。
- 在实际工作中,几乎所有的金融行业和保险行业的大数据集群都启用了 kerberos, 这一趋势也在快速蔓延到电信行业,制造行业等各个行业;
- 而同时由于一些小伙伴对 kerberos 不太熟悉,使用过程中由于姿势不对,也遇到了各种五花八门的问题。
有鉴于此,笔者在大数据问题排查系列中,准备专门开一个 kerberos问题排查子序列,专门讲述常见的 kerberos 问题与解决方法。
本文是该子序列第一篇,以下是正文。
2. 问题概述
大数据集群开启kerberos后,一些服务如 HDFS/YARN/HIVESERVER2 的 webui无法访问, 如下图所示,分别对应 chrome 和 firefox 访问 hdfs webui的报错:
chrome-error
firefox-error
3 问题原因
通过查看 HDFS/YARN 服务的配置,可以发现开启了 "Enable Kerberos Authentication for HTTP Web-Consoles", 所以此时因为用户通过浏览器访问 WEBUI 时会因为没有认证无法访问;
通过查看服务的后台日志,也能确认是用户认证的问题,以下是相关日志截图:图片
4 问题解决
解决方法1:可以关掉 hdfs/yarn/hive 的 “Enable Kerberos Authentication for HTTP Web-Consoles”,需要注意,hive 中该配置项需要在高级配置段中设置,如下图所示:
hdfs-config
yarn-config
hive-config
解决方法2:如果安全管理很严格,不能采用上述方法1,此时可以安装个 kerberos windows 客户端,在使用浏览器访问 webui前,先在 kerberos windows 客户端通过用户名和密码的认证,然后就可以使用浏览器正常访问 webui了,需要注意 chrome浏览器的相关配置比较复杂,建议使用 firefox 浏览器。相关截图如如下图所示:
MIT Kerberos windows 客户端
Initialize kerberos ticket
hdfs web ui under kerberos
hiveserver2 web ui under kerberos
5 知识总结
大数据领域,解决数据安全中用户认证 authentication 问题,事实上的标准是使用 kerberos;
一旦大数据服务开启了 kerberos 安全认证,默认情况下其 webui 页面的访问,同样需要通过 kerberos 认证才能访问;
windows下kerberos 安全认证,可以使用 MIT Kerberos 的 windows 客户端,输入principal和对应的密码经过认证后,就可以使用浏览器正常访问开启了 kerberos 安全的大数据服务的 web ui了,且浏览器推荐使用 firefox;
也可以关闭开启了 kerberos 安全认证的大数据服务的 webui 的 http 认证,即“ disable Kerberos Authentication for HTTP Web-Consoles”,此时浏览器访问其 webui 不需要经过 kerberos 安全认证;