温馨提示×

debian下kafka怎么认证

小樊
39
2026-09-12 19:39:55
栏目: 智能运维

在 Debian 下使用 Kafka,常见的**认证(Authentication)**方式主要有以下几种,按使用频率从高到低说明:


一、SASL/PLAIN(用户名密码,最常用)

1. 服务端配置(broker)

编辑 server.properties(一般在 /etc/kafka//opt/kafka/config/):

listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN

# JAAS 配置
listener.name.sasl_plaintext.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="admin-secret" \
  user_admin="admin-secret" \
  user_alice="alice-secret";

2. 客户端配置

创建 client.properties

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

使用方式:

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

二、SASL/SCRAM(更安全,推荐生产)

1. 创建 SCRAM 用户

kafka-configs.sh --bootstrap-server localhost:9092 \
  --alter --add-config 'SCRAM-SHA-256=[password=alice-secret]' \
  --entity-type users --entity-name alice

2. broker 配置

sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256

JAAS:

sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
  username="admin" \
  password="admin-secret";

三、SSL/TLS 双向认证(最安全)

1. 生成证书(简要)

keytool -genkey -alias kafka -keystore kafka.server.keystore.jks
keytool -export -alias kafka -file kafka.cert
keytool -import -file kafka.cert -keystore kafka.client.truststore.jks

2. server.properties

listeners=SSL://:9093
security.inter.broker.protocol=SSL
ssl.keystore.location=/path/kafka.server.keystore.jks
ssl.keystore.password=123456
ssl.key.password=123456
ssl.truststore.location=/path/kafka.server.truststore.jks
ssl.truststore.password=123456
ssl.client.auth=required

四、Delegation Token(内部服务)

适合 Kafka Connect / Streams:

kafka-delegation-tokens.sh --bootstrap-server localhost:9092 \
  --create --renewer-principal User:admin

五、ACL 配合认证(授权)

认证后通常要加 ACL:

kafka-acls.sh --bootstrap-server localhost:9092 \
  --add --allow-principal User:alice \
  --operation Read --topic test

六、Debian 常见注意事项

  • Kafka 一般来自:
    • 官方 tar 包
    • confluent-platform
  • systemd 启动注意 JAAS 文件路径权限
  • 防火墙开放对应端口(9092/9093)

如果你能告诉我:

  • Kafka 版本
  • 是否上云 / 是否 Docker
  • 是否需要 ACL
  • 测试还是生产

我可以直接给你一份可复制的 Debian 完整配置

0