kafka sasl配置:是否可以仅为客户端启用它

9ceoxa92  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(352)

我要做的是只为客户机到代理的通信启用sasl身份验证,而不是为
经纪人对经纪人
经纪人到Zookeeper
有可能吗?如果是的话,我怎样才能做到。
我跟随各种链接和官方Kafka博士以及但没有得到明确的想法运气。
任何帮助都将不胜感激!

mctunoxg

mctunoxg1#

是的,这是可能的。
这需要几个步骤,恐怕我怀疑我能否比Kafka官方文档更清楚地配置sasl。我建议你再看一眼,如果有一个部分你不确定,请明确询问。
无论如何,我会给你一些关于sasl平原(可能是最容易设置)的指针
在经纪人方面,遵循以下文件:
创建具有 KafkaServer 章节:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret"
    user_alice="alice-secret";
};

设置jvm属性 java.security.auth.login.config 所以jaas文件被提取了
更新 server.properties 包括sasl设置。例如:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

我建议开始时不要使用ssl,但要记住,如果最终使用sasl plain,则必须启用ssl,否则包括身份验证在内的所有通信都将是明文的!
在客户端,遵循以下文档:
更新客户端属性以包括:

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="alice" password="alice-secret";
security.protocol=SASL_SSL
sasl.mechanism=PLAIN

显然,在生产环境中,您不应该依赖于代理的jaas文件中的硬编码用户。kafka文档解释了如何提供一个实现来正确地提供用户id。

相关问题