¿Hay alguna información sobre cómo puedo usar los detalles de AWS MSK en mi aplicación Spring Cloud Stream?
Creo que necesitamos generar un almacén de claves y un almacén de confianza y luego incorporarlos en nuestra aplicación. Revisé la página "Autenticación de cliente" de AWS MSK y descubrí que era muy confuso.
¿Alguien puede ayudarme con los pasos en esto? Solo estoy tratando de implementar esta aplicación que usa AWS MSK (3 intermediarios).
Gracias.
Respuesta corta: su cliente kafka necesitará esto en la configuración:
# security settings security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks ssl.truststore.password= ssl.endpoint.identification.algorithm= Eso es si usa el mismo almacén de confianza JVM del tutorial y sin contraseña. El ssl.endpoint.identification.algorithm desactiva la verificación del nombre de host.
Respuesta larga: me pregunté lo mismo después de seguir el tutorial, preguntándome por qué el almacén de confianza de JVM funciona mágicamente cuando se conecta a MSK. La explicación es esta:
Si echa un vistazo a los certificados que importó este almacén de confianza
keytool --list -v -keystore /tmp/kafka.client.truststore.jks | grep Owner Una de ellas es la Starfield Services Root Certificate Authority , cuando Amazon compró la empresa, la CA se convirtió en una de Amazon (véalas todas aquí https://www.amazontrust.com/repository/ ). Dado que el almacén de confianza de JVM confía en esta CA, también confía en cualquier cosa firmada por la CA, y el clúster de MSK es uno de ellos.
Si prefiere generar su propio almacén de confianza, descargue uno de los certificados de Amazon e importe
keytool -keystore kafka.client.truststore.jks -alias CARoot -importcert -file {downloaded-cert} -storepass {your-password}Gracias, Yanan
Estaba buscando lo mismo, por lo que publicar como respuesta podría ayudar a otra persona. Aquí hay documentación oficial que puede ayudar.
En la máquina Ubuntu, siga trabajando para mí, además, no necesita importar / crear, solo usó los cacerts existentes
cp /home/ubuntu/.sdkman/candidates/java/8.0.232.hs-adpt/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks cree un archivo de texto llamado client.properties con el siguiente contenido.
security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jksy somos buenos para consumir mensaje
./kafka-console-consumer.sh --bootstrap-server mykafka.kafka.us-west-2.amazonaws.com:9094 --consumer.config /home/ubuntu/client.properties --topic demo --from-beginning