我将我的 RDS (psql) 数据库设置为不可公开访问,现在我无法使用 pgAdmin 连接到我的数据库。我现在如何连接到它?

Posted

技术标签:

【中文标题】我将我的 RDS (psql) 数据库设置为不可公开访问,现在我无法使用 pgAdmin 连接到我的数据库。我现在如何连接到它?【英文标题】:I set my RDS (psql) db to NOT publicly accessible and now I cannot connect to my db using pgAdmin. How can I connect to it now? 【发布时间】:2017-06-28 10:19:22 【问题描述】:

我正在使用弹性 beanstalk,我的 REST 应用程序在那里运行。这个 REST API 应用程序可以访问我的 RDS postgres 数据库,而我的 RDS 只能在我的 VPC 中访问。我已经更新了我的 VPC 设置,所以我的 REST API 似乎确实可以工作,因为我有一些要插入的端点,而且我还可以请求提取最新数据等。

但是……我不能确定!

我使用 PgAdmin 连接到我的数据库,但是由于将 RDS 实例的可公开访问设置更改为 NO,我无法再从我的 macbook 连接到它。有没有办法我仍然可以使用 PgAdmin 或 psql 连接到该数据库,也许是使用 SSH 或其他方式?

从我的阅读来看,我似乎无法直接通过 SSH 连接到 RDS,所以我不确定如何继续。谢谢!

【问题讨论】:

REST 应用程序正在 EC2 实例中运行。对吗? 【参考方案1】:

根据您的问题,我可以理解您需要从亚马逊 VPC 外部的公共访问您的数据库

只需修改数据库实例

打开 rds 仪表板选择您要修改的数据库实例

顶部实例操作>>修改>>将公开可用选项更改为是。 图片参考:

将您的 Db 安全组端口更改为任何位置或您的 Ip。(至少您只能访问)

现在您可以从 MacBook 访问数据库

【讨论】:

好吧,我让它公开访问 NO 的重点是它只能用于我的 VPC 应用程序。 如果有办法通过 SSH 连接到我的 VPC,我该如何为我的 RDS 实例执行此操作? @scarywolfman 您无法通过 ssh 访问 RDS,因为您无法访问 RDS 操作系统级别,但如果您愿意,您可以将 ssh 访问到任何 EC2 实例。从您的 EC2 中,您可以安装 PostgreSQL-client 或 pg admin 并连接到 DB,您的 DB 仍将在您的 vpc 内部,没有公共访问权限 谢谢!我想既然我可以连接到我的 EC2,我会弄清楚如何安装 psql 客户端。我无法使用apt,所以我必须弄清楚我的操作系统和一切。除非你知道怎么做。我刚刚使用 eb-cli 使用 express 预设部署了我的 express 应用程序【参考方案2】:

为您的数据库实例选择“可公开访问”选项“是”将为您的实例提供一个公共 IP 地址。

您的 RDS 在私有子网中吗?

如果是,我以前也遇到过这个问题。在我的情况下,我所做的是设置一个 open*** 服务器并在我的 Mac 上安装客户端。但该解决方案的驱动力不仅在于私有子网中的 RDS,还有其他服务,因此我们可以通过 *** 连接访问它们。

关于Open***,我专门为它发了一篇博文:here

【讨论】:

以上是关于我将我的 RDS (psql) 数据库设置为不可公开访问,现在我无法使用 pgAdmin 连接到我的数据库。我现在如何连接到它?的主要内容,如果未能解决你的问题,请参考以下文章

Amazon RDS - 仅在需要时在线?

在 Amazon RDS 上设置 PostGis

调整 RDS 上的默认时区设置

如何浏览我的 Heroku 数据库?

GCP 上的 Terraform:如何将我的集群节点列入 RDS 白名单

AWS RDS DB 部署时速度慢