如何通过VPC让Metabase访问私有子网中的Amazon RDS?
问题解答
1. 直接将Metabase IP添加到VPC中无法访问私有子网的RDS
私有子网内的RDS使用的是VPC内部私有IP,公网环境下的Metabase无法直接路由到这类私有IP。就算把Metabase的IP加到VPC相关配置里,也解决不了公网到私有子网的路由问题,所以这种方式行不通。
如果要让Metabase直接访问私有子网的RDS,可选择以下两种正规方案:
- 给RDS分配公网IP:修改RDS实例配置,开启“公开可访问”,同时更新RDS安全组的入站规则,允许Metabase的IP访问对应数据库端口(如3306、5432等)。这种方式操作简单,但会让RDS暴露到公网,需做好安全管控。
- 配置VPC对等连接/中转网关:若Metabase运行在另一AWS账户的VPC中,可通过VPC对等连接打通两个VPC;若Metabase是第三方云服务,可借助AWS Transit Gateway建立跨云连接,这种方式安全性更高,但配置复杂度较大。
2. 用公有子网EC2搭建SSH隧道可以访问RDS
这种方式完全可行,是访问私有子网RDS的常用安全方案,具体操作步骤:
- 创建公有子网EC2实例:选择Amazon Linux或Ubuntu镜像,分配弹性公网IP,确保EC2的安全组入站规则允许Metabase的IP访问22端口(SSH)。
- 配置RDS安全组:更新RDS的入站规则,允许EC2实例的私有IP访问对应数据库端口(如PostgreSQL的5432)。
- Metabase端配置SSH隧道:在Metabase添加数据库的界面,开启SSH隧道选项,填入EC2的弹性公网IP、SSH用户名(如
ec2-user/ubuntu),上传对应的密钥对私钥文件,然后数据库地址填RDS的私有IP,端口填数据库默认端口,完成配置后测试连接即可。
内容的提问来源于stack exchange,提问作者Logan
相关产品推荐
相关产品推荐

