You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用自定义域名公网暴露AWS MSK集群?

实现AWS MSK自定义静态公网域名+SSL/TLS适配的方案

核心思路

用Network Load Balancer (NLB) 作为MSK Broker的反向代理,绑定自定义静态域名,通过Route 53将域名解析到NLB。同时通过两种可选的SSL处理模式解决证书兼容问题,彻底避免MSK栈重建导致的域名变更风险。


方案1:SSL透传模式(推荐,保持端到端加密)

此模式下NLB仅转发TCP流量,SSL连接直接在客户端与MSK Broker之间建立,完美解决证书不匹配问题:

  • 创建公网NLB
    选择与MSK集群同VPC(或对等VPC)的公网模式NLB,为每个MSK Broker添加TCP监听(端口对应MSK默认SSL端口9094);创建IP类型目标组,添加所有MSK Broker的私有IP+9094端口,健康检查采用TCP协议。
  • 绑定自定义域名
    在Route 53中为自定义域名创建A记录,设置为别名指向NLB的公网DNS;确保ACM中已申请覆盖该自定义域名的SSL证书。
  • 客户端配置调整
    客户端使用自定义域名(如kafka.yourdomain.com:9094)连接,由于MSK Broker返回的自身DNS与自定义域名不一致,需在客户端配置中添加:
    ssl.endpoint.identification.algorithm=none
    
    同时客户端仍需导入MSK的根CA证书以验证Broker身份。

注意:此模式下自定义域名仅作为静态访问入口,客户端实际验证的是MSK Broker的原生证书,关闭端点识别是为了绕过域名不匹配的校验,安全层面仍保持端到端加密。


方案2:SSL终止在NLB(灵活管理证书)

此模式下NLB终止客户端的SSL连接,再用MSK内部证书与Broker建立加密连接,客户端仅需信任自定义域名的证书:

  • 创建公网NLB并配置SSL终止
    选择同VPC的公网NLB,创建TLS监听(端口9094)并绑定ACM中的自定义域名证书;创建IP类型目标组,添加MSK Broker私有IP+9094端口,健康检查采用SSL协议。
  • 配置MSK内部认证
    确保MSK集群开启SSL访问,同时配置IAM认证或SASL/SCRAM认证:若用IAM认证,需为NLB服务角色添加MSK访问权限;若用SASL/SCRAM,需提前创建对应凭证。
  • 客户端配置
    客户端使用自定义域名连接,仅需信任自定义域名的ACM证书;无需导入MSK根CA证书,根据MSK认证方式配置对应参数,比如IAM认证需添加:
    security.protocol=SASL_SSL
    sasl.mechanism=AWS_MSK_IAM
    

防止MSK栈重建后的配置失效

  • 将NLB、Route 53记录、ACM证书作为独立资源管理,不纳入MSK的CloudFormation栈;
  • 若MSK栈重建,可通过脚本自动获取新Broker的私有IP列表,批量更新NLB目标组即可。

内容的提问来源于stack exchange,提问作者msmells

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:32:37