1. 生成zookeeper的keytab文件
#添加zookeeper的principal
kadmin.local -q "addprinc -randkey zookeeper/$hostname@REALM.COM"
#生成zookeeper的keytab
kadmin.local -q "xst -kt /tmp/keytabs/zookeeper.keytab zookeeper/$hostname@REALM.COM"
生成的zookeeper.keytab就在/tmp/keytabs路径下,我们需要在集群每个节点提前创建一个存放keytab证书的目录。注意,集群中安装zookeeper的每个节点都需要创建对应的principal,即将$hostname替换为对应节点的hostname即可。生成keytab时,可以将所有节点的principal的密钥生成到一个keytab中,也可以每个节点单独生产一个keytab。然后将生成的keytab证书发送到对应节点的 /tmp/keytabs 目录下。注意,其他用户如果对该文件有读权限,就可以冒充 keytab 中指定的用户身份访问集群中的服务,所以 keytab 文件需要确保只对 owner(我这里的owner是hadoop用户) 有读权限。
#修改keytab存放目录的用户和用户组
chown -R hadoop:hadoop /tmp/keytabs/zookeeper.keytab
#修改zookeeper.keytab证书的权限为500
chmod 500 /tmp/keytabs/zookeeper.keytab
2. zookeeper配置kerberos认证
在$ZOOKEEPER_HOME/conf/zoo.cfg里面添加以下内容:
authProvider.1=org.apache.zookeeper.server.auth.SASLAuth

本文详细指导如何在Zookeeper中设置Kerberos认证,包括创建keytab文件、修改权限、配置jaas文件并重启服务。关键步骤包括添加principal、生成keytab、配置zookeeper_jaas.conf和zookeeper_client_jaas.conf。
最低0.47元/天 解锁文章
517

被折叠的 条评论
为什么被折叠?



