基于Debezium实现MSSQL CDC同步到AWS MSK连接器报错问题咨询
问题解决指南
首先明确:使用Debezium SQL Server连接器通过MSK Connect同步MSSQL CDC数据到Amazon MSK的方案是完全可行的,你当前遇到的错误是MSK Connect工作节点与MSK集群之间的SASL认证失败导致,和数据库侧配置暂时无关,可按以下方向排查:
排查步骤
检查MSK Connect执行角色的IAM权限
你需要为MSK Connect关联的IAM执行角色添加MSK集群的访问权限,权限资源需覆盖三类Topic:
- Debezium数据库历史Topic(即你配置的
database.history.kafka.topic) - Debezium自动生成的变更数据Topic,格式为
{database.server.name}.{表名} - MSK Connect默认的内置Topic:
connect-configs、connect-offsets、connect-status
权限动作至少需要包含kafka:CreateTopic、kafka:DescribeCluster、kafka:DescribeTopic、kafka:Read、kafka:Write、kafka:CreateGroup
补充连接器的安全认证配置
如果你的MSK集群开启了IAM身份认证,需要在连接器配置中添加以下参数:
security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
同时注意你的Debezium自定义插件包中必须包含AWS MSK IAM认证依赖包aws-msk-iam-auth,否则会因为找不到认证类导致鉴权失败。
验证网络访问策略
确认MSK Connect部署的子网、安全组与MSK集群网络连通:
- MSK集群安全组需放通MSK Connect安全组对9098(IAM认证默认端口)的入站访问
- 两者需部署在同一VPC下,或已配置对等网络打通
验证历史Topic配置
你可以选择提前手动创建database.history.kafka.topic指定的Topic,或者给MSK Connect执行角色开启Topic自动创建权限,避免因Topic不存在导致的初始化失败。
内容的提问来源于stack exchange,提问作者liv
相关产品推荐
相关产品推荐

