¿Cómo implementar un entorno Kafka seguro con una interfaz pública?

¿Cómo implementar un entorno Kafka seguro con una interfaz pública?

Escenario: el clúster Kafka, protegido con cifrado SSL y autenticación SASL/PLAIN, reside en una subred privada de AWS dentro de una VPC dedicada. Dentro de la subred privada, todo está bien. Utilizo claves y CA autogeneradas para proteger la comunicación, las identidades de host se basan en el DNS interno de AWS.

Lo que quiero lograr: tener la posibilidad de acceder a la API del productor (noAPI REST) ​​desde el exterior.

Estoy luchando con la combinación de claves, DNS, oyentes de Kafka y el hecho de que la conexión permanente de un productor a un corredor posiblemente no sea la que usé para iniciar la conexión.

Varios intentos con proxies inversos fallaron; ni siquiera un túnel ssh funciona porque las claves no se pueden resolver.

¿Alguien tiene algún tipo de arquitectura de referencia para tal caso? Dejo los detalles de configuración aquí ya que están demasiado extendidos en las diferentes configuraciones, claves, etc., pero si es necesario puedo proporcionar mi configuración.

Respuesta1

Ok, encontré una solución; tal vez no sea la más eficiente, pero está bien para mí. Implementé tres balanceadores de carga de nivel 4 frente a los tres corredores y configuré la dirección advanced_listener de cada corredor con la del balanceador de carga. funciona de maravilla, incluso si es comparativamente caro y reduce un poco el tráfico.

información relacionada