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

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

我已经看了OpenVPN,并可以直接创build一个VPN连接到VPN的实例。 我相信我的路由不工作,因为RDS不知道如何将回复路由回RDS实例。

  1. 是否有可能设置OpenVPN像我想要的路线?
  2. 如果1不可能,我有什么select来创build来自未知远程源的RDS的安全已知连接。

一个非常简单的解决scheme就是使用SSH隧道来承载SQLstream量。 你没有提到你在EC2实例上运行的是什么操作系统,所以我假定你正在运行Linux(如果你不是在运行Linux, t1.micro为了这个目的,启动一个t1.micro实例。大量的这种types的stream量马力)。 所以 – 使用Linux服务器,build立起来会相当简单。 每个开发者都需要在该服务器上有一个帐户,他们需要为自己生成一个密钥对,并为您提供公钥,以便在其服务器帐户上进行部署。

如果他们使用unixy操作系统,他们会运行一个类似这样的命令:

 $ ssh user@ec2-host -L3306:abcd:3306 

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

这样做后,开发人员将连接到他们的本地主机端口3306,并将stream量隧道到RDS实例。

(我从来没有真正使用RDS,但是因为它是build立在MySQL替代品之上的,所以我觉得我的假设是正确的,就是使用端口3306.如果它使用不同的端口,那么改变端口号的上述命令)

是的,如果没有一点琐碎的事情,你将无法做到这一点。 最简单的解决scheme是在网关将其发送到RDS时对NATstream量进行NAT转换,以便RDS知道将stream量发送回您的网关,然后再将其归档到NAT中,然后将其发送回VPN。 另一种可能的方式是使用VPC; 我从来没有用过RDS(或者老实说,很多),但是据我了解VPCnetworking的工作方式,可能RDS挂钩到您的VPC,因此可能会使用网关。 不过,我认为NAT最终将成为最简单的select。