AWS私有子网内RDS供第三方工具访问的配置咨询
解决私有子网RDS被第三方公网访问的方案
首先得明确:NAT网关确实只负责私有子网的出站流量转发——也就是让私有子网里的资源能访问公网,但反过来,公网的流量没法通过NAT网关进入私有子网,所以它解决不了你的问题。
要让第三方的特定IP能访问私有子网里的RDS,你有两个主流方案可选:
方案一:使用堡垒机(Bastion Host)
- 部署一台EC2实例作为堡垒机放在公有子网里,给它分配弹性公网IP(EIP)
- 配置堡垒机的安全组:只允许第三方的特定IP访问SSH(22端口,或者你自定义的远程端口)
- 配置RDS的安全组:允许堡垒机的私有IP访问数据库端口(比如MySQL的3306、PostgreSQL的5432)
- 第三方需要先通过SSH连接到堡垒机,再从堡垒机内部访问RDS的私有IP
这种方案适合访问量不大、对访问链路复杂度接受度较高的场景,成本也比较低。
方案二:使用网络负载均衡(NLB)
- 部署一台Network Load Balancer(NLB),将其放在公有子网,开启公网访问模式
- 创建目标组,目标类型选择「IP」,把RDS的私有IP和数据库端口添加到目标组里
- 配置NLB的安全组:只允许第三方的特定IP访问对应的数据库端口
- 配置RDS的安全组:允许NLB目标组的IP段(或者直接允许NLB的安全组)访问数据库端口
- 第三方直接通过NLB的公网DNS名称访问RDS即可
NLB是四层负载均衡,完美适配数据库的TCP/UDP协议,而且性能稳定,适合需要直接、低延迟访问的场景,也是更推荐的生产环境方案。
另外如果第三方也是在AWS云环境内,还可以考虑用AWS PrivateLink建立私有连接,完全绕开公网,但从你的描述看第三方是特定公网IP,所以前两个方案更贴合需求。
内容的提问来源于stack exchange,提问作者Paul Vulf
相关产品推荐
相关产品推荐

