本文描述CDH6.3.2集群集成MIT Kerberos流程和遇到的问题以及解决方法。
参考:https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_sg_intro_kerb.html。
MIT Kerberos安装文档请参考 Ubuntu安装MIT Kerberos。
操作系统:Ubuntu18.04。
创建Cloudera Manager主体
登陆KDC主机。切换到root
用户权限。
执行kadmin.local
进入kerberos管理员交互程序。
在kadmin.local
中,键入以下命令创建cloudera manager主体:
1
2kadmin.local: addprinc -pw password cloudera-scm/admin@EXAMPLE.COM
-pw
用于指定主体密码。EXAMPLE.COM
是Kerberos REALM,你应该写成你的。
启用kerberos
调整KDC配置
查看/etc/krb5kdc/kdc.conf
文件,确保以下配置存在,没有则添加:
1
2
3max_life = 1d max_renewable_life = 7d
完整示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16[kdcdefaults] kdc_ports = 750,88 [realms] EXAMPLE.CN = { database_name = /var/lib/krb5kdc/principal admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab acl_file = /etc/krb5kdc/kadm5.acl key_stash_file = /etc/krb5kdc/stash kdc_ports = 750,88 max_life = 1d 0h 0m 0s max_renewable_life = 7d 0h 0m 0s master_key_type = des3-hmac-sha1 #supported_enctypes = aes256-cts:normal aes128-cts:normal default_principal_flags = +preauth }
开始启用Kerberos
使用管理员用户进入Cloudera Manager Web UI。
1、进入启用Kerberos向导
依次点击 管理 -> 安全,进入安全管理页面,找到要启用Kerberos的集群,点击 启用Kerberos,即可进入启用Kerberos向导。
2、启用要求
确认四个要求都满足,全部勾选。点击 继续。
3、填写KDC信息
Kerberos加密类型选择aes256-cts
。
Kerberos安全领域,KDC Server主机,KDC Admin Server Host按照以安装好的Kerberos KDC信息进行填写。
点击 继续。
问题记录:
出现的默认加密类型:rc4-hmac,启用会失败。
测试可用的加密类型有:aes128-cts-hmac-sha1-96,aes256-cts。其他没有测。
这里使用aes256-cts。
4、 KRB5配置
不要选择 通过Cloudera Manager管理krb5.conf,点击 继续。
网上有人指出,使用Cloudera Manager管理krb5.conf会有问题,本人没有对此进行测试。
使用手动管理krb5.conf方法,配置更改后,确保Kerberos所有机器保持最新的配置。
5、KDC Account Manager凭据
填入在文章开始时创建的Cloudera Manager主体信息,这里是cloudera-scm/admin
,填入密码,点击 继续。
6、导入KDC Account Manager凭据命令
等待成功,点击 继续。
如果失败,分析并排查解决。上面第3步的问题就是在这一步失败,更改加密类型后,此步成功导入。
7、配置主体
此步配置各个服务的主体,保持默认即可。点击 继续。
8、配置端口
勾选重启集群,其他保持默认。点击 继续。
9、启用Kerberos命令
等待集群重启成功。点击 继续。
10、启用成功
不出意外,到达此步,Kerberos启用成功。点击 完成。
使用启用Kerberos的服务
当服务启用Kerberos后,如果想要使用指定服务的超级用户访问服务(总会有这样的需要),需要提供用户凭据才可以访问服务。
各服务凭据存放在各机器的/var/run/cloudera-scm-agent/process
目录下。
注意:请不要手动使用Kerberos管理员为这些服务的超级用户生成凭据,那将会刷新用户凭据,导致集群服务出现问题。
例如查找hive的凭证票据:
1
2find /var/run/cloudera-scm-agent/process | grep keytab | grep hive
这个只有在安装有hive实例的机器上可以找到,例如hive的metastore所在机器。
输出如下:
1
2
3
4
5
6/run/cloudera-scm-agent/process/764-hive-HIVESERVER2/hive.keytab /run/cloudera-scm-agent/process/763-hive-HIVEMETASTORE/hive.keytab /run/cloudera-scm-agent/process/756-hive-HIVESERVER2/hive.keytab /run/cloudera-scm-agent/process/755-hive-HIVEMETASTORE/hive.keytab ...
排在前面的两个是最新的,可用,其他不可用。
获取hive用户凭据(假设hive主体是hive/host1.example.com
):
1
2kinit -kt /run/cloudera-scm-agent/process/764-hive-HIVESERVER2/hive.keytab hive/host1.example.com
然后就可以通过beeline
连接hive进行操作了。
其他服务同样操作。
最后
以上就是温柔香水最近收集整理的关于CDH6.3.2集群集成MIT Kerberos创建Cloudera Manager主体启用kerberos使用启用Kerberos的服务的全部内容,更多相关CDH6.3.2集群集成MIT内容请搜索靠谱客的其他文章。
发表评论 取消回复