如何为远程用户设置 VPN 以连接到 AWS RDS 服务器?

Mor*_*gan 4 vpn openvpn amazon-ec2 amazon-web-services amazon-rds

我的远程开发人员经常出差并且 IP 地址不断变化。我希望他们能够连接到在 EC2 上的实例上运行的 VPN。一旦他们使用密钥连接到 VPN,他们就可以使用 VPN 将流量中继到 RDS 服务器。每天为每个开发人员不断更改安全组设置不是一种选择。

我研究了 OpenVPN,可以直接创建到托管 VPN 的实例的 VPN 连接。我相信我的路由不起作用,因为 RDS 不知道如何将回复路由回 RDS 实例。

  1. 是否可以将 OpenVPN 设置为像我想要的那样进行路由?
  2. 如果 1 不可能,我有哪些选项可以从未知的远程源创建到 RDS 的安全已知连接。

EEA*_*EAA 5

一个非常简单的解决方案是仅使用 SSH 隧道来承载 SQL 流量。您没有提到您在 EC2 实例上运行的操作系统,所以我假设您运行的是 Linux(如果您没有运行 Linux,只需t1.micro为此目的启动一个实例。这将提供足够的马力对于这种类型的流量)。所以 - 有了 Linux 服务器,设置这个就很容易了。每个开发人员都需要在该服务器上有一个帐户,他们需要为自己生成一个密钥对,并为您提供公钥以部署在他们的服务器帐户上。

如果他们使用的是 unixy 操作系统,他们会运行类似于以下的命令:

$ ssh user@ec2-host -L3306:a.b.c.d:3306
Run Code Online (Sandbox Code Playgroud)

...其中“abcd”是 RDS 实例的 IP 地址。您只需要确保每个用户在 RDS 数据库上都有适当的授权,以便从他们通过 ssh 连接的 ec2 主机进行连接。

完成此操作后,开发人员将连接到他们的本地主机,端口 3306,并且该流量将通过隧道传输到 RDS 实例。

(我从未真正使用过 RDS,但由于它是内置的 MySQL 替代品,我觉得我的假设是正确的,即使用端口 3306。如果它使用不同的端口,则最后更改端口号上面的命令)