簡體   English   中英

KAFKA SSL 使用 pem 密鑰和客戶端證書連接

[英]KAFKA SSL connectivity using pem key and client certificate

我能夠使用 client.properties 中的以下 ssl 詳細信息連接到 kafka 並從 CLI (bin/kafka-console-consumer.sh) 讀取數據

ssl.keystore.location=/test/keystore.jks
ssl.keystore.password=abcd1234
ssl.key.password=abcd1234
Command: bin/kafka-console-consumer.sh --bootstrap-server 'server details'  --topic topic_name --consumer.config client.properties --group group-id

但我無法使用相同的數據從 python 或 spark 連接

consumer = KafkaConsumer(topic,bootstrap_servers=bootstrap_server,security_protocol='SSL',sasl_mechanism='PLAIN',ssl_certfile='certificate.pem',ssl_keyfile='pk.key')

我嘗試更改上面代碼中的多個選項,例如添加 check_host_name 等,但沒有成功。 kafka 不屬於我們的團隊,它是由另一個團隊管理的,當我們請求訪問時,我們會獲得私鑰和證書以及 CA 包和 ARN 名稱。

從 Spark(Python),我嘗試了下面的代碼

sdf1 = spark.readStream.format("kafka")
       .option("kafka.bootstrap.servers",bootstrap_server)
       .option("subscribe", topic_name)
       .option("startingOffsets", "latest")
       .option("kafka.security.protocol","SSL")
       .option("kafka.ssl.keystore.location",'keystore.jks')
       .option("kafka.ssl.keystore.password", '****')
       .option("kafka.ssl.key.password",'****')
       .load()

我收到類似“org.apache.kafka.common.errors.GroupAuthorizationException:未授權訪問組:spark-kafka-source-xxxxxxx-xxxxx-xxxxx”的錯誤

上述錯誤與每次訪問時生成唯一組 ID 的火花有關。 僅在 spark 3.0 及更高版本中才允許在 spark dataframe 中使用 group-id。 我需要在 spark 2.4.4 中修復此問題的選項。

任何建議,將不勝感激。

您只需要提供您正在使用的委托人來驗證對主題的訪問權限,而不考慮消費者組。 它看起來像這樣:

kafka-acls --authorizer-properties zookeeper.connect=zk_ip_or_fqdn:2181  --add  --allow-principal User:"userName" --operation All --topic yourTopicName --group=*

您的用戶名(主體名稱)將是您的 SSL 證書的主題名稱,格式為“CN=toto,OU=titi,...”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM