无法通过Kubernetes Microcks Pod连接AWS DocumentDB求助
Microcks连接AWS DocumentDB认证失败问题排查建议
问题现象
通过Helm部署Microcks时已配置mongodb:false,网络连接正常,但出现SCRAM-SHA-1认证失败错误:
08:00:16.002 [INFO] org.mongodb.driver.connection - Opened connection [connectionId{localValue:10}] to docdb-2022-12-.cluster-.ap-southeast-1.docdb.amazonaws.com:27017 08:00:16.007 [ERROR] io.github.microcks.web.HealthController - Health check caught an exception: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='mangodb', source='microcks', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='mangodb', source='microcks', password=<hidden>, mechanismProperties=<hidden>} org.springframework.data.mongodb.UncategorizedMongoDbException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='mangodb', source='microcks', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='mangodb', source='microcks', password=<hidden>, mechanismProperties=<hidden>} at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:140) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:3044) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:600) at org.springframework.data.mongodb.core.MongoTemplate.doExactCount(MongoTemplate.java:1216) at org.springframework.data.mongodb.core.MongoTemplate.doCount(MongoTemplate.java:1188) at org.springframework.data.mongodb.core.MongoTemplate.count(MongoTemplate.java:1178) at org.springframework.data.mongodb.core.MongoTemplate.count(MongoTemplate.java:1160) at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.count(SimpleMongoRepository.java:175) at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566)
解决建议
- 核对用户名拼写:错误日志中显示用户名为
mangodb,极可能是mongodb的拼写错误,确认AWS DocumentDB创建的用户名是否准确。 - 验证认证源匹配:认证源字段
source='microcks',需确保DocumentDB的用户是在microcks数据库下创建的,而非默认的admin库。 - 检查密码正确性:确认配置的密码与DocumentDB用户的密码完全一致,注意特殊字符转义(如果Helm values中包含特殊字符,需用引号包裹)。
- 确认Microcks外部Mongo配置:
- 确保Helm values中
externalMongo.enabled=true(对应mongodb:false),并且externalMongo.username、externalMongo.password、externalMongo.database参数配置正确,未被其他配置覆盖。 - 若使用URI格式配置,需确认URI包含完整认证信息:
mongodb://<username>:<password>@<docdb-endpoint>:27017/microcks?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false
- 确保Helm values中
- 强制SSL连接:AWS DocumentDB要求SSL连接,需在Microcks配置中启用SSL,设置
externalMongo.sslEnabled=true,并确保已导入AWS DocumentDB的CA证书到Microcks容器中。 - 确认用户权限:检查DocumentDB用户是否拥有
microcks数据库的读写权限,避免因权限不足导致认证后操作失败(日志虽显示认证异常,但权限问题也可能触发类似报错)。
内容的提问来源于stack exchange,提问作者Abhinay
相关产品推荐
相关产品推荐

