6.5. ZooKeeper 身份验证
默认情况下,ZooZ 和 Kafka 之间的连接不会被身份验证。但是,Kafka 和 ZooKeeper 支持 Java 认证和授权服务(JAAS),可用于使用简单身份验证和安全层(SASL)设置身份验证。ZooKeeper 支持在本地存储的凭证中使用 DIGEST-MD5 SASL 机制进行身份验证。
6.5.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";
};
6.5.2. 启用 ZooKeeper 身份验证 复制链接链接已复制到粘贴板!
这个流程描述了如何在连接到 ZooKeeper 时使用 SASL DIGEST-MD5 机制启用身份验证。
先决条件
- ZooKeeper 中启用了 客户端到服务器身份验证
启用 SASL DIGEST-MD5 身份验证
在所有 Kafka 代理节点上,创建或编辑
/opt/kafka/config/jaas.confJAAS 配置文件并添加以下上下文: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有关在多节点集群中重启代理的详情,请参考 第 4.3 节 “执行 Kafka 代理的安全滚动重启”。