温馨提示×

ubuntu kafka怎么配用户

小樊
38
2026-09-05 17:04:18
栏目: 智能运维

在 Ubuntu 上给 Kafka 配置用户(认证 + 授权),常见做法是使用 SASL(用户名/密码),一般配合 PLAINTEXT 或 SSL。下面给你一套最常用、可落地的 Kafka 用户配置方案(SASL/PLAIN)


一、环境假设

  • Kafka 安装目录:/opt/kafka
  • Kafka 版本:≥ 2.x(现代版本通用)
  • 操作系统:Ubuntu 20.04 / 22.04

二、开启 Kafka 用户认证(SASL/PLAIN)

1️⃣ 创建用户配置文件

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"
  user_producer="prod123"
  user_consumer="cons123";
};

说明:

  • username/password:broker 之间通信账号
  • user_xxx="密码":普通用户

2️⃣ 修改 Kafka 服务端配置

编辑:

sudo nano /opt/kafka/config/server.properties

添加 / 修改:

listeners=SASL_PLAINTEXT://:9092
advertised.listeners=SASL_PLAINTEXT://localhost:9092

security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN

authorizer.class.name=kafka.security.authorizer.AclAuthorizer
allow.everyone.if.no.acl.found=false
super.users=User:admin

3️⃣ 让 Kafka 加载 JAAS

编辑启动脚本:

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"

4️⃣ 启动 Kafka

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

三、客户端使用用户名(生产者 / 消费者)

1️⃣ 客户端 JAAS 文件

nano kafka_client_jaas.conf
KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="producer"
  password="prod123";
};

2️⃣ 客户端配置

client.properties

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="producer" \
  password="prod123";

3️⃣ 测试生产 / 消费

kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --producer.config client.properties
kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --from-beginning \
  --consumer.config client.properties

四、给用户授权(ACL)

kafka-acls.sh \
  --bootstrap-server localhost:9092 \
  --add \
  --allow-principal User:producer \
  --operation Write \
  --topic test \
  --command-config admin.properties
kafka-acls.sh \
  --bootstrap-server localhost:9092 \
  --add \
  --allow-principal User:consumer \
  --operation Read \
  --group '*' \
  --topic test

五、常见坑提醒

✅ Ubuntu 上 不要 root 跑 Kafka(建议 kafka 用户)
✅ JAAS 文件路径必须 broker 能读
✅ SASL_PLAINTEXT 不是加密,生产建议 SASL_SSL
✅ 改完配置必须 重启 Kafka


六、如果你想要

我可以帮你:

  • ✅ 配 SASL + SSL
  • ✅ Docker / docker-compose 版
  • ✅ 多用户 + 多 topic 权限设计
  • ✅ Spring Boot / Python 客户端示例

直接说你用在哪(测试 / 生产 / 开发)。

0