I can connect kafka cli producer to AWS MSK broker secured with IAM Authentication & Authorization using the following steps:
- Setup AWS CLI locally
- Place aws-msk-iam-auth-2.1.1-all.jar in the libs folder of kafka installation
- Run the following command
./kafka-console-producer.sh --broker-list "b-1.amazonaws.com:9098,b-2.amazonaws.com:9098" --producer.config /tmp/kafka.iam.client.properties --topic some-topic --property "parse.key=true" --property "key.separator=,"
How can I do the same thing when running kafdrop either using the jar file or using the docker file?
I tried following command but it fails to start the kafdrop container
docker run -d --platform linux/amd64 -p 9042:9000
-v /tmp/kafka.iam.client.properties:/tmp/kafka.iam.client.properties:ro
-v /tmp/kafka.client.truststore.jks:/tmp/kafka.client.truststore.jks:ro
-v ~/.aws/credentials:/root/.aws/credentials:ro
-v /Users/ME/apps/kafka/extra-kafdrop-classes/aws-msk-iam-auth-2.1.0-all.jar:/kafdrop-4.0.1/lib/aws-msk-iam-auth-2.1.0-all.jar:ro
-e KAFKA_BROKERCONNECT="b-1.amazonaws.com:9098,b-2.amazonaws.com:9098"
-e KAFKA_PROPERTIES_FILE="/tmp/kafka.iam.client.properties"
obsidiandynamics/kafdrop
Here is the error message
2024-06-26 17:47:28 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messageInspector' defined in URL [jar:file:/kafdrop-4.0.1/kafdrop-4.0.1.jar!/BOOT-INF/classes!/kafdrop/service/MessageInspector.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'kafkaMonitorImpl' defined in URL [jar:file:/kafdrop-4.0.1/kafdrop-4.0.1.jar!/BOOT-INF/classes!/kafdrop/service/KafkaMonitorImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'kafkaHighLevelConsumer': Invocation of init method failed
...
2024-06-26 17:47:28 at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
2024-06-26 17:47:28 at org.springframework.boot.loader.Launcher.launch(Launcher.java:95)
2024-06-26 17:47:28 at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2024-06-26 17:47:28 at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)
2024-06-26 17:47:28 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'kafkaMonitorImpl' defined in URL [jar:file:/kafdrop-4.0.1/kafdrop-4.0.1.jar!/BOOT-INF/classes!/kafdrop/service/KafkaMonitorImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'kafkaHighLevelConsumer': Invocation of init method failed
...
2024-06-26 17:47:28 Caused by: org.apache.kafka.common.config.ConfigException: Invalid value software.amazon.msk.auth.iam.IAMClientCallbackHandler for configuration sasl.client.callback.handler.class: Class software.amazon.msk.auth.iam.IAMClientCallbackHandler could not be found.