Kafka0.10提供SASL/PLAIN,这是一种简单的用户名/密码安全认证机制。
配置Kafka Brokers
- 创建kafka_server_jaas.conf
1 | KafkaServer { |
这里定义了两个用户,admin和alice。username和password用于集群内部通讯,即当前broker使用admin/admin-secret去连接别的broker。而user_userName=”password”定义了能够访问这个broker的用户及其密码。
将kafka_server_jaas.conf拷贝到Kafka的所有broker上
将kafka_server_jaas.conf加入到Kafka broker启动参数中
1
-Djava.security.auth.login.config=${PATH}/kafka_server_jaas.conf
在server.properties中配置SASL端口和SASL实现机制,例如
1
2
3
4listeners=SASL_PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
配置Kafka Clients
- 创建kafka_client_jaas.conf,consumer和producer使用它来访问Kafka broker
1
2
3
4
5KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="alice"
password="alice-secret";
};
属性username和password被用于配置到Kafka broker的连接。在这个例子中,clients使用用户alice连接broker
将kafka_client_jaas.conf加入到Kafka client启动参数中:
1
-Djava.security.auth.login.config=${PATH}/kafka_client_jaas.conf
在producer.properties或者consumer.properties中加入以下配置:
1
2security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN