资讯专栏INFORMATION COLUMN

大数据开发系列五:kafka& zookeeper 配置kerberos认证

不知名网友 / 5482人阅读
大数据开发系列五:kafka& zookeeper 配置kerberos认证
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
今天我们继续实践在已安装的kerberos服务基础上对kafka与zookeeper  组件进行kerberos认证配置。

环境依赖


zookeeper认证配置

2.1 创建principle添加用户
kadmin.local -q "addprinc -randkey zookeeper/bigdata-05@HADOOP.COM"
kadmin.local -q "addprinc -randkey zookeeper/bigdata-01@HADOOP.COM"
kadmin.local -q "addprinc -randkey zookeeper/data01@HADOOP.COM"
kadmin.local -q "listprincs"  验证添加用户信息
2.2 创建keytab密码文件
kadmin.local -q "xst -k /root/keytabs/kerberos/zookeeper.keytab zookeeper/bigdata-05@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/zookeeper.keytab zookeeper/bigdata-01@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/zookeeper.keytab zookeeper/data01@HADOOP.COM"
验证密钥文件:
klist -kt /root/keytabs/kerberos/zookeeper.keytab
将生成的zookeeper.keytab 复制到三台zk主机器/etc/security/keytabs/ 目录下,同时将/etc/krb5.conf 也复制到三台zk主机器/etc/目录下。
2.3 配置zookeeper.conf
在所有zk主机器上 /etc/security/keytabs/目录下新建zookeeper.jaas 内容如下:
Server{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
principal="zookeeper/bigdata-05@HADOOP.COM"
userTicketCache=false;
};
Client{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
principal="zookeeper/bigdata-05@HADOOP.COM"
userTicketCache=false;
};
红色内容需按zk所在主机名称进行修改。
2.4 zoo.cfg 配置修改
etc/zoo.cfg 新增内容:
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
2.5 配置环境变量java.env
etc/java.env
export JVMFLAGS="-Djava.security.auth.login.config=/etc/security/keytabs/zooke
eper.jaas -Djava.security.krb5.conf=/etc/krb5.conf"
2.6 启动zookeeper
bin/zkServer.sh start
检查日志信息。
2.7 验证认证情况
找一个zk节点利用zk客户端进行操作,./zkCli.sh -server 192.168.199.244:2183 ,当出现如下信息的时,说明客户端认证成功


kafka认证配置

3.1 创建principle添加用户
kadmin.local -q "addprinc -randkey kafka/bigdata-03@HADOOP.COM"
kadmin.local -q "addprinc -randkey kafka/bigdata-05@HADOOP.COM"
kadmin.local -q "listprincs"  验证添加用户信息
3.2 创建keytab密码文件
kadmin.local -q "xst -k /root/keytabs/kerberos/kafka.keytab kafka/bigdata-03@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/kafka.keytab kafka/bigdata-05@HADOOP.COM"
验证密钥文件:
klist -kt /root/keytabs/kerberos/kafka.keytab
将生成的kafka.keytab 复制到两台zk主机器/etc/security/keytabs/ 目录下,同时将/etc/krb5.conf 也复制到两台kafka主机器/etc/目录下。
3.3 配置kafka.jaas
在所有kafka主机器上 /etc/security/keytabs/目录下新建kafka.jaas 内容如下:
KafkaServer{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/bigdata-03@HADOOP.COM";
};
红色内容需按kafka所在主机名称进行修改。
3.4 配置kafka.jaas
在所有kafka主机器上 /etc/security/keytabs/目录下新建kafka.jaas 内容如下:
KafkaServer{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/bigdata-03@HADOOP.COM";
};
红色内容需按kafka所在主机名称进行修改。
3.5 修改kafka server.properties
新增或者修改:
listeners=SASL_PLAINTEXT://192.168.199.102:9098
advertised.listeners=SASL_PLAINTEXT://192.168.199.102:9098

security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=kafka //需要跟principal的名称相同
3.6 修改kafka kafka-server-start.sh
在脚本倒数第二行新增:
export KAFKA_OPTS="-Dzookeeper.sasl.client=true -
Dzookeeper.sasl.client.username=zookeeper -
Djava.security.krb5.conf=/etc/krb5.conf -
Djava.security.auth.login.
config=/etc/security/keytabs/kafka.jaas"
zookeeper 开启 Kerberos 认证,需要将zookeeper.sasl.client 设为 true,并配置访问zk 用户凭证信息。
3.7 验证认证情况
kafka 加入认证后,利用kafka 命令查看所有的topic名称列。
1)在所有kafka主机器上 /etc/security/keytabs/目录下新建kafka-client-jaas.conf 和kafka_client.properties  
内容如下:
kafka-client-jaas.conf:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/kafka.keytab"
storeKey=true
useTicketCache=false
principal="kafka/bigdata-03@HADOOP.COM";
};
kafka_client.properties:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka //需要跟principal的名称相同
2)在 kafka-topics.sh 倒数第行新增认证配置项
export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -
Djava.security.auth.login.config=/etc/security/keytabs/kafka-client-jaas.conf"
3)查看所有的topic列表名称
./kafka-topics.sh --list --bootstrap-server 192.168.199.102:9098 --command-config 
/etc/security/keytabs/kafka_client.properties
需要加入command-config 参数才能果出所有topic 列表,同时观察server.log 日志信息。


本文作者:长研架构小组(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129095.html

相关文章

  • 《从0到1学习Flink》—— Flink 配置文件详解

    摘要:相关文章从到学习介绍从到学习上搭建环境并构建运行简单程序入门从到学习配置文件详解从到学习介绍从到学习如何自定义从到学习介绍从到学习如何自定义 showImg(https://segmentfault.com/img/remote/1460000016930071?w=1920&h=1275); 前面文章我们已经知道 Flink 是什么东西了,安装好 Flink 后,我们再来看下安装路径...

    superw 评论0 收藏0

发表评论

0条评论

不知名网友

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<