具有kerberos身份验证的Kafka Console使用者

时间:2018-02-12 10:50:21

标签: linux authentication apache-kafka kerberos

如何使用经过kerberos授权的kafka(版本0.10)服务器发布的消息,因为正在使用身份验证密钥表文件。

我尝试使用以下命令但没有显示输出。

bin / kafka-console-consumer.sh --bootstrap-server:9092 --topic --from-beginning

1 个答案:

答案 0 :(得分:6)

启用Kerberos的群集有时会带来一些棘手的挑战。我自己不得不处理其中的一些。

如果Kafka群集启用了Kerberos,那么您需要提供带有Kerberos详细信息的 jaas.conf 文件。尝试按照这些步骤(他们为我工作):

  1. 使用以下内容创建 jaas.conf 文件:
  2. KafkaClient {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    keyTab="<path-to-the-keytab-file>"
    principal="<kafka-principal>";
    };
    

    注意:我假设已经创建了Kafka主体和关联的keytab。如果没有,您需要先创建它们。

    1. 使用以下内容创建属性文件(例如“consumer.properties”):
    2. security.protocol=SASL_PLAINTEXT
      sasl.kerberos.service.name=kafka
      
      1. 然后在终端运行以下命令:
      2. $export KAFKA_OPTS="-Djava.security.auth.login.config=<path-to-jaas.conf>"
        
        1. 执行Kafka-console-consumer脚本:
        2. $ kafka-console-consumer --topic <topic-name> --from-beginning 
          --bootstrap-server <anybroker>:9092 --consumer.config <consumer.properties>
          

          我希望这会有所帮助。