Kafka安全认证机制主要有SASL和SSL两种,以下是其配置方法:
SASL配置
- 修改配置文件:在
server.properties中,添加或修改listeners为SASL_PLAINTEXT://host.name:port或SASL_SSL://host.name:port,设置security.inter.broker.protocol为相应的协议,启用所需的SASL机制,如sasl.enabled.mechanisms=PLAIN,SCRAM-SHA-256等。 - 创建JAAS文件:在Kafka配置目录下创建
kafka-server-jaas.conf文件,配置Broker的认证信息,如KafkaServer {org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";};。也可通过listener.name.{listenerName}.{saslMechanism}.sasl.jaas.config属性为不同的监听器和机制配置JAAS。 - 客户端配置:在客户端配置文件中,设置
security.protocol为SASL_PLAINTEXT或SASL_SSL,并通过ssl.truststore.location等属性配置信任库,或使用client.sasl.jaas.config属性配置客户端的JAAS。
SSL配置
- 生成证书和密钥:使用OpenSSL工具为Kafka broker和Zookeeper生成SSL证书和密钥,包括CA证书、服务器证书和客户端证书等。
- 配置Kafka:编辑
server.properties,设置listeners为SSL://开头的地址,配置ssl.keystore.location、ssl.keystore.password、ssl.truststore.location和ssl.truststore.password等属性,指定证书和密钥的位置及密码。 - 配置Zookeeper:在Zookeeper的配置文件中,启用SSL,配置
ssl.client.trust - cert - store.location等属性,指向Kafka的证书。 - 客户端配置:在客户端配置文件中,设置
security.protocol为SSL,并配置ssl.truststore.location和ssl.keystore.location等属性,以信任Kafka的证书。