debian

Debian Kafka配置中的认证与授权

小樊
49
2025-03-12 05:10:57
栏目: 智能运维

在Debian上配置Kafka的认证与授权可以通过以下步骤实现:

  1. 启用SASL认证

    • 编辑server.properties文件,修改listeners参数以启用SASL_PLAINTEXT协议:
      listeners=SASL_PLAINTEXT://:9092
      security.inter.broker.protocol=SASL_PLAINTEXT
      sasl.mechanism.inter.broker.protocol=SCRAM-SHA-512
      sasl.enabled.mechanisms=SCRAM-SHA-512
      
    • 创建JAAS配置文件kafka_server_jaas.conf,指定用户名和密码信息:
      KafkaServer {
          org.apache.kafka.common.security.scram.ScramLoginModule required
          username="root"
          password="Root@123";
      };
      
    • 在启动脚本kafka-server-start.sh中添加JVM参数,指定JAAS配置文件路径:
      export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf"
      
  2. 配置ACL(访问控制列表)

    • 使用kafka-configs.sh工具添加认证配置:
      ./bin/kafka-configs.sh --zookeeper 172.16.1.102:2181 \
      --alter \
      --add-config "SCRAM-SHA-256=[password=Root@123],SCRAM-SHA-512=[password=Root@123]" \
      --entity-type users \
      --entity-name root
      
  3. 客户端认证

    • 客户端工具如kafka-topics.sh需要使用JAAS配置属性,指定用户名和密码信息:
      ./bin/kafka-topics.sh --zookeeper localhost:2181 \
      --replication-factor=1 \
      --partitions=3 \
      --topic test1 \
      --create \
      --command-config config/sasl.properties
      
      其中config/sasl.properties文件内容如下:
      security.protocol=SASL_PLAINTEXT
      sasl.mechanism=SCRAM-SHA-256
      sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required
      username="root"
      password="Root@123";
      

0
看了该问题的人还看了