如何通过用户名密码实现Debezium Connector连接AWS MSK
基于用户名密码连接MSK的可行方案
AWS MSK原生支持SASL/SCRAM、SASL/PLAIN两种用户名密码认证方式,只要你拿到的凭据对应集群已开启对应认证能力,无需IAM即可正常连接,适配debezium/connect官方镜像的部署方案如下:
1. 前置校验
- 确认云团队提供的用户名密码已开通对应topic的生产权限,MSK集群安全组已放通EKS网段对SASL端口(默认9096)的访问权限
- 确认MSK集群开启的认证类型,默认场景下为
SCRAM-SHA-512,少数场景为PLAIN
2. EKS部署配置
官方debezium/connect镜像内置Kafka客户端全量认证模块,无需自定义打包镜像,仅需在Deployment的环境变量中添加以下配置即可:
# MSK broker地址,注意端口为SASL认证端口9096 CONNECT_BOOTSTRAP_SERVERS=<你的MSK broker地址列表> # 认证传输协议 CONNECT_SECURITY_PROTOCOL=SASL_SSL # 认证机制,SCRAM场景填SCRAM-SHA-512,PLAIN场景填PLAIN CONNECT_SASL_MECHANISM=SCRAM-SHA-512 # JAAS认证配置,替换为实际用户名密码 CONNECT_SASL_JAAS_CONFIG=org.apache.kafka.common.security.scram.ScramLoginModule required username="<MSK用户名>" password="<MSK密码>";
若使用PLAIN认证,仅需将
CONNECT_SASL_MECHANISM改为PLAIN,JAAS配置中的类改为org.apache.kafka.common.security.plain.PlainLoginModule即可。
敏感信息存储建议
不要将用户名密码明文写在Deployment配置中,建议提前创建K8s Secret存储凭据,配置示例如下:
env: - name: CONNECT_SASL_JAAS_CONFIG valueFrom: secretKeyRef: name: msk-auth-secret key: jaas-config
3. 连接器配置
创建Debezium源连接器时无需额外添加MSK相关配置,连接器会自动复用Kafka Connect服务的全局MSK连接参数,正常配置RDS连接信息、topic映射规则即可。
验证方法
部署完成后调用Kafka Connect REST接口查看连接器运行状态,同时核对MSK对应topic是否有增量数据写入即可确认配置生效。
内容的提问来源于stack exchange,提问作者Work Work
相关产品推荐
相关产品推荐

