kafka 3.x 配置kerbos
1、kerbors主体配置
生成主体:
for i in {01..11}; do kadmin.local -q "addprinc -randkey kafka/hadoop$i.EX AMPLE.COM@EX AMPLE.COM"; done
导出主体
for i in {01..11}; do kadmin.local -q "xst -k kafka.keytab kafka/hadoop$i.EX AMPLE.COM@EX AMPLE.COM"; done
2、kafka server kerbos配置
2.1 准备 server-kerberos.properties 文件。 拷贝 Kafka config 目录下的 server.properties
文件,命名为 kerberos-server.properties
,编辑认证配置相关的内容
kerberos-server.properties
group.initial.rebalance.delay.ms=0
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=root
2.2 准备 server-jaas.conf 配置文件。 kerberos 目录下,创建文件 kafka-server-jaas.conf
,编辑内容如下
KafkaServer {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
//不同的主机,需修改成不同的keytab文件
keyTab="/BigData/run/kafka/config/kafka.keytab"
storeKey=true
useTicketCache=false
// Kafka Server 在 KDC 中的用户名全称
principal="kafka/hadoop01@EX AMPLE.COM";
};
2.3 准备 kafka-server-kerberos-start.sh 文件,添加 Kerberos 认证配置。 拷贝 bin/kafka-server-start.sh 脚本,命名为 kafka-server-kerberos-start.sh,编辑最后一行,在最后一行代码之前,添加 Krb5 环境变量和 jaas.conf 配置信息
export KAFKA_OPTS="-Dzookeeper.sasl.client=false -Dzookeeper.sasl.client.username=zk-server
-Djava.security.krb5.conf=/etc/krb5.conf
-Djava.security.auth.login.config=/BigData/run/kafka/config/kafka-server-jaas.conf"
3、kafka client kerbos配置
3.1 第一步,准备 client-kerberos.properties 文件。 拷贝 Kafka config 目录下的 consumer.properties
文件,命名为 client-kerberos.properties
,编辑认证配置相关的内容:
curity.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
3.2 第二步,准备 client-jaas.conf 配置文件。 kerberos 目录下,创建文件 kafka-client-jaas.conf
,编辑内容如下:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
//不同的主机,需修改成不同的keytab文件
keyTab="/BigData/run/kafka/config/kafka.keytab"
storeKey=true
useTicketCache=false
// Client 在KDC中的帐号
principal="kafka@EXAMPLE.COM";
};
3.3
第三步,准备 kafka-server-kerberos-start.sh 文件,添加 Kerberos 认证配置。 拷贝 bin/kafka-console-consumer.sh 脚本,命名为 kerberos-kafka-console-consumer.sh,编辑最后一行,在最后一行代码之前,添加 Krb5 环境变量和 jaas.conf 配置信息:
export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf
-Djava.security.auth.login.config=/BigData/run/kafka/config/kafka-client-jaas.conf"
4、 验证生产和消费
kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test