Home / 运维 / Zookeeper / kafka + zookeeper 配置SASL

kafka + zookeeper 配置SASL

Zk开启SASL

配置conf/jaas.conf

 

配置conf/zoo.cfg

 

配置conf/java.env

 

重启zk服务

 

Kafka

  • SASL/PLAIN 需要配置在jaas中,使用 org.apache.kafka.common.security.plain.PlainLoginModule
  • SASL/SCRAM 验证可以动态新增用户并分配权限,使用 org.apache.kafka.common.security.scram.ScramLoginModule

配置config/jaas.conf

  • kafkaServer中的 username和 user_xxx 为 集群间通信的认证信息
  • Client中的配置为 zk中的认证信息

 

配置config/server.properties

  • advertised.listeners 改为对外提供服务的IP地址

 

配置config/test.conf

 

配置config/admin.conf

 

配置bin/kafka-run-class.sh

  • -Djava.security.auth.login.config 指向新增的jaas.conf

 

Kafka ACL设置

admin用户凭据

 

test用户凭据

 

 

增加test用户的 写权限

 

增加test用户的 读权限

 

查看权限列表

 

测试

 

错误排查

Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256

日志信息: ERROR [Controller id=2, targetBrokerId=2] Connection to node 2 (test2.devse.cn/172.16.100.132:9092) failed authentication due to: Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256 (org.apache.kafka.clients.NetworkClient)

有未经验证的用户请求集群,可能的原因:

  • 有客户端未提供认证信息
  • jaas.conf中有错误,列如: username,password 和 user_xxx = <password> 不正确

 

发表评论