Как реализовать защищенную среду Kafka с публичным интерфейсом?

Как реализовать защищенную среду Kafka с публичным интерфейсом?

Сценарий: Кластер Kafka, защищенный SSL-шифрованием и аутентификацией SASL/PLAIN, находится в частной подсети AWS в выделенном VPC. Внутри частной подсети все в порядке. Я использую самогенерируемый CA и ключи для защиты связи, идентификаторы хостов основаны на внутреннем DNS AWS.

Чего я хочу добиться: иметь возможность доступа к API производителя (нетREST API) извне.

Я борюсь с комбинацией ключей, DNS, прослушивателей Kafka и тем фактом, что постоянное соединение от производителя к брокеру, возможно, не то, которое я использовал для запуска соединения.

Несколько попыток с обратными прокси-серверами не увенчались успехом — даже туннель ssh не работает, так как ключи не могут быть разрешены.

Есть ли у кого-нибудь своего рода эталонная архитектура для такого случая? Я не буду приводить здесь подробности конфигурации, поскольку они слишком разбросаны по разным конфигурациям, ключам и т. д., но если нужно, я могу предоставить свои настройки.

решение1

Хорошо, я нашел решение — может быть, не самое эффективное, но меня оно устроило. Я реализовал три балансировщика нагрузки уровня 4 перед тремя брокерами и настроил адрес advanced_listener каждого брокера на адрес балансировщика нагрузки. Работает просто великолепно — даже если это сравнительно дорого и несколько снижает скорость трафика.

Связанный контент