首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卡夫卡在kubernetes上使用sasl.jaas.config配置jaas

卡夫卡在kubernetes上使用sasl.jaas.config配置jaas
EN

Stack Overflow用户
提问于 2018-09-13 13:37:31
回答 1查看 6K关注 0票数 4

我正在使用这个舵图:https://github.com/helm/charts/tree/master/incubator/kafka

而这些覆盖在values.yaml中

代码语言:javascript
运行
复制
configurationOverrides:
  advertised.listeners: |-
    EXTERNAL://kafka-${KAFKA_BROKER_ID}.host-removed:$((31090 + ${KAFKA_BROKER_ID}))
  listener.security.protocol.map: |-
    PLAINTEXT:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
  sasl.enabled.mechanisms: SCRAM-SHA-256
  auto.create.topics.enable: false
  inter.broker.listener.name: PLAINTEXT
  sasl.mechanism.inter.broker.protocol: SCRAM-SHA-256
  listener.name.EXTERNAL.scram-sha-256.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="password";

基于这些文档:broker

(快速摘要)

代码语言:javascript
运行
复制
Brokers may also configure JAAS using the broker configuration property sasl.jaas.config. The property name must be prefixed with the listener prefix including the SASL mechanism, i.e. listener.name.{listenerName}.{saslMechanism}.sasl.jaas.config. Only one login module may be specified in the config value. If multiple mechanisms are configured on a listener, configs must be provided for each mechanism using the listener and mechanism prefix

listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="admin" \
    password="admin-secret";

问题是,当我启动Kafka时,会出现以下错误:

代码语言:javascript
运行
复制
java.lang.IllegalArgumentException: Could not find a 'KafkaServer' or 'plaintext.KafkaServer' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set

根据优先级的顺序,如果没有设置上述配置,则应该使用静态jass文件。

代码语言:javascript
运行
复制
If JAAS configuration is defined at different levels, the order of precedence used is:
  • 代理配置属性listener.name.{listenerName}.{saslMechanism}.sasl.jaas.config
  • 静态JAAS配置的{listenerName}.KafkaServer部分
  • 静态JAAS配置的KafkaServer部分

舵机图表不支持配置此jaas文件的方法,因此使用此属性似乎是所需的方法,我只是对配置不正确的内容感到困惑。

注意:如果我禁用所有SASL并只使用纯文本,集群就能正常工作,但在实际环境中这并不是什么好消息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-13 15:55:41

我们定义了两个侦听器:PLAINTEXTEXTERNAL。您已经将两者映射到SASL_PLAINTEXT

你真的想这么做吗?还是希望PLAINTEXT不需要SASL,而只是纯文本?

  • 如果您真的希望两者都是SASL,那么它们都需要JAAS配置。在您的问题中,我只看到了用于外部的JAAS配置: listener.name.EXTERNAL.scram-sha-256.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule需要username=“用户”“password=”密码; 当您将PLAINTEXT映射到SASL_PLAINTEXT时,它还需要JAAS配置。您可以使用例如: listener.name.PLAINTEXT.scram-sha-256.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule需要username=“用户”“password=”密码;
  • 如果您希望您的PLAINTEXT侦听器实际上是没有SASL的纯文本,则需要更新侦听器映射: listener.security.protocol.map:-纯文本:纯文本,EXTERNAL:SASL_PLAINTEXT
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52314964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档