4.6. ZooKeeper 身份验证
默认情况下,ZooZ 和 Kafka 之间的连接不会被身份验证。但是,Kafka 和 ZooKeeper 支持 Java 认证和授权服务(JAAS),可用于使用简单身份验证和安全层(SASL)设置身份验证。ZooKeeper 支持在本地存储的凭证中使用 DIGEST-MD5 SASL 机制进行身份验证。
4.6.1. JAAS 配置
ZooKeeper 连接的 SASL 身份验证必须在 JAAS 配置文件中配置。默认情况下,Kafka 将使用名为 Client
的 JAAS 上下文连接到 ZooKeeper。Client
上下文应该在 /opt/kafka/config/jass.conf
文件中配置。上下文必须启用 PLAIN
SASL 身份验证,如下例所示:
Client { org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="123456"; };
4.6.2. 启用 ZooKeeper 身份验证
这个流程描述了如何在连接到 ZooKeeper 时使用 SASL DIGEST-MD5 机制启用身份验证。
先决条件
- ZooKeeper 中启用了 客户端到服务器身份验证
启用 SASL DIGEST-MD5 身份验证
在所有 Kafka 代理节点上,创建或编辑
/opt/kafka/config/jaas.conf
JAAS 配置文件并添加以下上下文:Client { org.apache.kafka.common.security.plain.PlainLoginModule required username="<Username>" password="<Password>"; };
用户名和密码应该与 ZooKeeper 中配置相同。
以下示例显示了
Client
上下文:Client { org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="123456"; };
逐一重启所有 Kafka 代理节点。要将 JAAS 配置传递给 Kafka 代理,请使用
KAFKA_OPTS
环境变量。su - kafka export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/jaas.conf"; /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
其他资源
- 有关在 ZooKeeper 中配置客户端到服务器身份验证的更多信息,请参阅 第 3.4 节 “身份验证”。