在 Ubuntu 上给 Kafka 配置用户(开启 SASL 认证),一般步骤如下。下面以 Kafka 自带 Zookeeper + SASL/PLAIN 为例,适合新手快速搭建。
/opt/kafka)sudo mkdir -p /opt/kafka/config/users
sudo nano /opt/kafka/config/users/kafka_server_jaas.conf
内容示例(创建两个用户):
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123"
user_admin="admin123"
user_kafka="kafka123";
};
说明:
username/password:broker 之间通信用户user_xxx="密码":普通客户端用户server.propertiessudo nano /opt/kafka/config/server.properties
添加或修改:
listeners=SASL_PLAINTEXT://:9092
advertised.listeners=SASL_PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
allow.everyone.if.no.acl.found=false
super.users=User:admin
sudo nano /opt/kafka/bin/kafka-server-start.sh
在 KAFKA_HEAP_OPTS 后加一行:
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/users/kafka_server_jaas.conf"
sudo nano /opt/kafka/config/client_jaas.conf
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka"
password="kafka123";
};
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/client_jaas.conf"
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic test \
--producer-property security.protocol=SASL_PLAINTEXT \
--producer-property sasl.mechanism=PLAIN
kafka-acls.sh \
--bootstrap-server localhost:9092 \
--add \
--allow-principal User:kafka \
--operation Write \
--topic test
✅ 用户必须在 jaas.conf 里提前写好(Kafka 无动态建用户)
✅ 改配置后必须 重启 Kafka
✅ 生产环境一定用 SSL + SASL
如果你愿意,我可以:
你现在是 单机测试 还是 生产环境?