将Kafdrop连接到安全的MSK Kafka经纪人

时间:2020-05-14 19:48:59

标签: apache-kafka aws-msk

我有一个运行apache kafka 2.2.1的安全MSK群集。如果我在私有子网(amazon linux 2)中创建一个ec2实例并安装java和kafka,则可以执行以下操作以与kafka通信:

cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_64/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks

然后制作一个文件

security.protocol=SSL
ssl.truststore.location=/tmp/kafka.client.truststore.jks

并将该文件的--command-config参数传递给一些kafka cli命令。

我现在正在尝试在ECS容器中运行kafdrop,并且需要传递此文件。 The documentation说我可以传递KAFKA_TRUSTSTOREKAFKA_PROPERTIES的base64编码版本(我想我可以省略KAFKA_KEYSTORE吗?)。但是,如果我对信任库进行base64编码,则必须将这个巨大的字符串复制粘贴到ECS任务定义中。有没有解决的办法?是否可以使用kafdrop映像作为基础创建自己的docker映像,然后仅添加truststore文件?

1 个答案:

答案 0 :(得分:0)

使用该默认配置,您需要使用 SSL 与 MSK 通信,但由于您没有在 MSK 上生成任何证书 - 在部署 Kafdrop 时,您可以完全省略第二个字符串以及您的属性文件和信任库,只需让您的客户端使用 TLS,因此您需要传递一个单独的附加参数 -e KAFKA_PROPERTIES="$(cat kafka.properties | base64)" 其中 kafka.properties 只包含 security.protocol=SSL