Apicurio / apicurio-registry

An API/Schema registry - stores APIs and Schemas.
https://www.apicur.io/registry/
Apache License 2.0
554 stars 249 forks source link

Unable to connect to AWS MSK with IAM auth #4708

Open bhanucharithp opened 1 month ago

bhanucharithp commented 1 month ago

Description

Using the docker image apicurio/apicurio-registry-kafkasql:2.5.10.Final

I'm trying to connect to the amazon msk with IAM authentication enabled

Docker command

docker run -it -d \
  --env KAFKA_BOOTSTRAP_SERVERS=<server-urls> \
  --env
REGISTRY_KAFKA_COMMON_SASL_CLIENT_CALLBACK_HANDLER_CLASS=software.amazon.msk.auth.iam.IAMClientCallbackHandler \
  --env REGISTRY_KAFKA_COMMON_SASL_MECHANISM=AWS_MSK_IAM \
  --env REGISTRY_KAFKA_COMMON_SECURITY_PROTOCOL=SASL_SSL \
  --env REGISTRY_KAFKA_COMMON_SASL_JAAS_CONFIG="software.amazon.msk.auth.iam.IAMLoginModule required;" \
 <imageId>

Error while starting - software.amazon.msk.auth.iam.IAMClientCallbackHandler Not found

2024-05-28 09:55:48 INFO <> [io.apicurio.registry.storage.impl.sql.AbstractSqlRegistryStorage] (main) Build's DB version is 15
2024-05-28 09:55:48 INFO <> [io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage] (main) Using Kafka-SQL artifactStore.
2024-05-28 09:55:48 ERROR <> [io.quarkus.runtime.ApplicationLifecycleManager] (main) **Failed to start application (with profile [prod]): java.lang.RuntimeException: Failed to start quarkus**
    at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
    at io.quarkus.runtime.Application.start(Application.java:101)
    at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
    at io.quarkus.runner.GeneratedMain.main(Unknown Source)
**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.**
    at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:744)
    at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:490)
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:483)
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:112)
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:145)
    at org.apache.kafka.clients.admin.AdminClientConfig.<init>(AdminClientConfig.java:245)
    at org.apache.kafka.clients.admin.Admin.create(Admin.java:134)
    at io.apicurio.registry.utils.kafka.KafkaUtil.createTopics(KafkaUtil.java:68)
    at io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage.autoCreateTopics(KafkaSqlRegistryStorage.java:198)
    at io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage.onConstruct(KafkaSqlRegistryStorage.java:136)
    at io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage_Bean.doCreate(Unknown Source)
    at io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage_Bean.create(Unknown Source)
    at io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage_Bean.create(Unknown Source)
    at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:113)
    at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:37)
    at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:34)
    at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:26)
    at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
    at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:34)
    at io.apicurio.registry.storage.impl.kafkasql.KafkaSqlRegistryStorage_Observer_handleSqlStorageEvent_8b2fe7c64125ae193fac080691d191934613bfce.notify(Unknown Source)
    at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:346)
    at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:324)
apicurio-bot[bot] commented 1 month ago

Thank you for reporting an issue!

Pinging @jsenko to respond or triage.