【问题标题】:Access Private RDS DB From Another VPC从另一个 VPC 访问私有 RDS 数据库
【发布时间】:2017-03-22 09:40:22
【问题描述】:

我正在尝试使用对等连接从不同的 VPC 访问私有 RDS 实例。我有两个 VPC:

  1. 具有一个公共子网的 VPC-K8S (172.20.0.0/16)
  2. VPC-RDS (172.17.0.0/16) 具有 1 个公有子网 (172.17.0.0/24) 和 3 个私有子网 (172.17.{1,2,3}.0/24)

VPC-RDS 有 2 个安全组(不是实际名称):

  1. default,接受来自我的 IP 的 SSH
  2. 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


    【解决方案1】:

    愚蠢的疏忽,但如果它对任何人有帮助,我会留下来。

    我在 VPC-RDS 中的私有子网使用与公有子网不同的路由表。这样做是为了让 Internet 地址(对于 catch all 规则 0.0.0.0/0)指向 NAT 网关,而不是公共子网中的 Internet 网关。

    我在私有子网的路由表中为对等连接 (172.20.0.0/16 -> pcx-112233) 添加了一条规则,然后将 db 安全组配置为接受来自 172.20.0.0/16 的端口 5432 上的 TCP 流量。

    【讨论】:

    • 谢谢你为我节省了时间!
    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 2020-03-22
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多