解压kafka安装包,进入kafka工作目录
1.编写JAAS 文件,定义连接用户及密码
vim kafka_server_jaas.conf
内容如下:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_alice="alice-secret";
};
以上定义了admin、alice两个用户,密码分别是admin-secret、alice-secret
2.将 JAAS 配置文件位置作为 JVM 参数传递给每个 Kafka 代理
打开kafka启动脚本
vim bin/kafka-server-start.sh
根据实际情况在 KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"后添加JAAS配置文件位置
-Djava.security.auth.login.config=/root/kafka_2.13-3.6.0/kafka_server_jaas.conf
如图
3.修改config/kraft/server.properties配置文件
vim config/kraft/server.properties
完整配置文件如下:
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=SASL_PLAINTEXT://:9092,CONTROLLER://:9093
#advertised.listeners为外部通信IP
advertised.listeners=SASL_PLAINTEXT://192.168.2.20:9092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kraft-combined-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
以上只修改了
listeners=SASL__PLAINTEXT://host.name:port
security.inter.broker.protocol=SASL__PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
这几个配置项,其余使用的都是默认配置,可以直接复制粘贴,IP地址修改为自己的IP地址即可
4.以Kraft模式启动kafka(不依赖zookeeper)
生成集群UUID
./bin/kafka-storage.sh random-uuid
格式化日志目录
./bin/kafka-storage.sh format -t <uuid> -c ./config/kraft/server.properties
这里的UUID为上一步生成的UUID
启动 Kafka 服务器
bin/kafka-server-start.sh config/kraft/server.properties
到此,kafka安全认证配置完成!!!!