【问题标题】:Amazon MSK cluster on private VPC access with TLS enabled启用 TLS 的私有 VPC 访问上的 Amazon MSK 集群
【发布时间】:2020-09-24 07:59:02
【问题描述】:

我在私有 VPC 上有一个 AWS MSK kafka 集群。我已经设置了一个堡垒来连接到这个集群,并且可以使用 kafka 控制台命令和使用 JVM 密钥库进行 SSL auth 成功地生成和使用来自堡垒的消息。

我正在尝试通过 SSH 隧道从我的 mac -> bastion -> kafka 代理生成/使用消息,但我似乎无法让它工作。

这是我的 SSH 隧道命令: ssh -i ~/bastion.pem -N ec2-user@ec2-myhost.compute.amazonaws.com -L 9094:kafkacluster.amazonaws.com:9094 -v

然后在我的 Mac 上本地运行 kafka-console-producer --broker-list localhost:9094 --producer.config client.properties --topic mytopic 但得到 org.apache.kafka.common.errors.TimeoutException: Topic AWSKafkaTutorialTopic not present in metadata after 60000 ms 错误。

当我使用未启用 TLS 的 zookeeper 服务器时,我没有收到此错误。

所以我的问题是:当 kafka 客户端连接到 localhost:9094 并启用 SSL 时,我怎样才能使这个 SSH 隧道工作?

谢谢

【问题讨论】:

  • 嗨@aamirnshah,你找到答案了吗?

标签: ssl apache-kafka amazon-vpc ssh-tunnel aws-msk


【解决方案1】:

可能当您在 vpc 中时,您正在使用 AWS dns,而 kafka 可能正在做一些花哨的重定向到 kafak 集群的其他部分,因此 kafkacluster.amazonaws.com 可能会转到b1-kafka-blah.amazonaws.com 等

# On Mac - aws internal dns name means nothing
#
localhost:9094 ---over-ssh---> kafka
    (kafka says, hey go to blah.amazon.com)
blah.amzon.com (dns has no idea, fails with errors) 

但是,这在您的 vpc 中可以正常工作,因为您在 aws dns 命名空间中。

当你在你的 mac 上时,你不在那个命名空间中,那个 dns 没有任何意义。

您可以做的一个偷偷摸摸的事情是编辑您的 /etc/hosts 并将这些未知名称的 dns 指向您的本地主机。 (对于其他端口上的服务,您需要更多隧道)

# /etc/hosts
127.0.0.1 localhost blah.amazon.com blah-01.amazon.com

这会诱使您的 mac 越过隧道,而不是尝试使用 dns 查找。

显然,这有点淘气。只需将其用于测试并记住之后将您的主机文件恢复正常。

也可能是您遇到了完全不同的问题。祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2021-06-17
    • 2019-08-25
    • 2021-09-19
    • 2021-02-15
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多