【发布时间】:2017-03-22 09:40:22
【问题描述】:
我正在尝试使用对等连接从不同的 VPC 访问私有 RDS 实例。我有两个 VPC:
- 具有一个公共子网的 VPC-K8S (
172.20.0.0/16) - VPC-RDS (
172.17.0.0/16) 具有 1 个公有子网 (172.17.0.0/24) 和 3 个私有子网 (172.17.{1,2,3}.0/24)
VPC-RDS 有 2 个安全组(不是实际名称):
-
default,接受来自我的 IP 的 SSH -
db,通过端口 5432 接受来自default安全组的 TCP。
在私有子网中创建数据库子网组后,我在 VPC-RDS 中部署我的数据库实例,并将其配置为不可公开访问。为了从我的工作站访问它,我在具有default 安全组的 VPC-RDS 的公共子网中创建了一个小型实例,并创建了一个 SSH 隧道:
ssh -L 5432:rds-host-name.us-east-1.rds.amazonaws.com:5432 -i "KeyName.pem" ec2-user@ec2-host-name.compute-1.amazonaws.com
我可以通过 localhost 从我的工作站访问 RDS。
我希望能够从我的 Kubernetes 集群 (VPC-K8S) 访问我的 RDS 实例。我在两者之间建立了对等连接,并适当地配置了路由表(在 VPC-K8S 中:172.17.0.0/16 -> pcx-112233;VPC-RDS:172.20.0.0/16 -> pcx-112233)
我无法从我的一个 K8S 节点或 K8S VPC 中的任何实例连接到 RDS。我怀疑它与db 安全组有关,但即使我向所有 IP (0.0.0.0/0) 开放端口 5432 也无济于事。
任何想法如何做到这一点,或者这只能通过可公开访问的 RDS 实例或 VPC-RDS 中的堡垒主机和default SG 来实现?
【问题讨论】:
标签: postgresql amazon-web-services ssh amazon-rds amazon-vpc