在Cloudera CDH 5.4.8上启用Kerberos (Ubuntu 14.04 LTS环境

默认安装好的Cloudera CDH是没有启用security的。在非security的CDH环境中,至少会存在以下安全隐患:
1. 任何可以登录到RegionServer节点上的用户,都可以运行”hbase shell”名命令进入到hbase的shell,并且可以完全控制所有的table。
2. 通过HUE创建的用户,如果被授予了读写数据库的权限,那么他就可以完全控制所有的table。
3. 更严重的隐患,只需要知道任何一个ZooKeeper的IP地址,那么就可以在集群以外的位置运行通过HBase API实现的代码来完全控制HBase。

需要解决以上隐患,我们必须在CDH中启用security。CDH使用Kerberos作为Authentication和Authorization的工具。本篇文章主要介绍如何在CDH上启用Kerberos,以及启用Kerberos后出现的各种问题和解决方法。

一.启用Kerberos 1.安装Kerberos服务端

首先需要找一台主机安装Kerberos服务端。建议可以在运行Cloudera Manager的主机上安装。运行以下命令:

sudo apt-get install krb5-kdc sudo apt-get install krb5-admin-server

安装过程中需要指定域名,Kerberos服务器,Kerberos管理服务器等。
域名可以填实际的域名:

这里写图片描述

Kerberos服务器可以填Cloudera Manager的完全主机名:

这里写图片描述

Kerberos管理服务器可以填Cloudera Manager的完全主机名:

这里写图片描述

2.配置Kerberos服务端

先创建新的数据库,执行以下命令,注意一定要记住设置的密码:

sudo krb5_newrealm

然后执行kadmin local进入管理界面,再添加管理员principal,Cloudera Manager将使用该管理员用户来创建其他相关的principal。参考以下命令:

#kadmin local addprinc cloudera-scm/admin

修改ACL文件,使该principal具有管理员权限。修改/etc/krb5kdc/kadm5.acl文件,内容如下:

# This file Is the access control list for krb5 administration. # When this file is edited run /etc/init.d/krb5-admin-server restart to activate # One common way to set up Kerberos administration is to allow any principal # ending in /admin is given full administrative rights. # To enable this, uncomment the following line: */admin * cloudera-scm/admin@BIGDATA.NET * 3.安装Kerberos客户端

在CDH的所有节点上安装Kerberos客户端,运行以下命令:

sudo apt-get install krb5-user

然后测试Kerberos是否配置正确。在节点上运行“kinit”命令没有报错,然后运行”klist”能够看到票据即可。如下:

这里写图片描述

4.在集群上启用Kerberos

在Cloudera Manager界面点击“管理”下面的”Kerberos”(5.5.0版本以后为Security),再点“启用Kerberos”,然后根据提示完成即可。

这里写图片描述


后面的步骤没有截图,按照页面的提示完成。下面的截图是启用Kerberos之后,Kerberos的配置。注意红色框框部分的配置信息。

这里写图片描述

二.问题解决

启用Kerberos后,原来运行正常的集群会出现各种因为Security导致的问题。下面把碰到的问题和解决的方法做一个简单的描述。

1.启用Kerberos后,ZeeKeeper服务无法启动

问题分析:节点无法连接到KDC服务器,无法获取票据,导致所有服务都无法启动。这个貌似是CDH的一个BUG。CDH通过TCP协议连接KDC服务器,但是由KDC托管的krb5.conf文件默认设置成UDP协议。
解决方法:修改所有节点的/etc/krb5.conf文件,把udp_preference_limit的值修改为0,然后再重启集群即可。

这里写图片描述

2.通过HUE界面创建的Workflow在提交时直接失败,并且没有Job日志

问题分析:通过查看JobHistory的日志发现,该问题是在尝试创建Job日志时,没有权限写/yarn/nm/usercache/

3.通过HUE界面无法查看HBase的table

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6b2710f2ecb19aad349c2c94dcf846dd.html