1. 创建管理员用户
用户/密码
admin/admin
老版本创建方法
启动zookeeper, 未启动broker
sh bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin
新版本建议使用下面的命令
启动zookeeper、 启动broker后执行,执行完成后停掉broker
sh bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin
2. 启用ACL配置
在server.properties增加如下配置:
listeners=SASL_PLAINTEXT://0.0.0.0:9091
advertised.listeners=SASL_PLAINTEXT://IP地址:9091
# 启用SASL机制
sasl.enabled.mechanisms=SCRAM-SHA-256,SCRAM-SHA-512
# broker之间通讯 机制
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256security.inter.broker.protocol=SASL_PLAINTEXTauthorizer.class.name=kafka.security.authorizer.AclAuthorizer
# 设置管理员账号
super.users=User:admin;
3. 配置jaas
在config目录下创建:kafka-broker.jaas文件,内容如下:
KafkaServer {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin"
password="admin";
};
如果有多个broker,第2、3步,每个broker都需要这样配置。
4. 启动broker
修改启动脚本bin/kafka-server-start.sh,在前面几行找个地方增加如下启动参数:
exportKAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=$base_dir/../config/kafka-broker.jaas "

配置里需要指定第3步的jaas文件。
服务器端的配置已经结束,启动broker。
./kafka-server-start.sh -daemon../config/server.properties
参考: