Java 桌面应用程序连接到远程Amazon RDS mysql实例

Java 桌面应用程序连接到远程Amazon RDS mysql实例,java,mysql,amazon-web-services,amazon-rds,Java,Mysql,Amazon Web Services,Amazon Rds,我有一个JavaSwing桌面应用程序,需要通过jdbc连接到远程mysql实例。我正在考虑使用AmazonRDS来实现这一点,并创建一个IP为0.0.0.0的安全组-有效地允许所有IP连接到mysql实例 我知道这种方法会带来安全隐患,我们应该使用web应用程序来处理远程数据库。桌面应用程序应该通过rest/soap访问web应用程序,然后通过web应用程序公开的服务访问其背后的db 现在这是一个很大的工作。因为我已经有桌面应用程序连接到本地数据库。我只想将DB移到云上,这样用户就可以从安装了

我有一个JavaSwing桌面应用程序,需要通过jdbc连接到远程mysql实例。我正在考虑使用AmazonRDS来实现这一点,并创建一个IP为0.0.0.0的安全组-有效地允许所有IP连接到mysql实例

我知道这种方法会带来安全隐患,我们应该使用web应用程序来处理远程数据库。桌面应用程序应该通过rest/soap访问web应用程序,然后通过web应用程序公开的服务访问其背后的db

现在这是一个很大的工作。因为我已经有桌面应用程序连接到本地数据库。我只想将DB移到云上,这样用户就可以从安装了相同JavaSwing应用程序的任何其他系统访问相同的DB

有人能帮我列出在互联网上公开Amazon RDS DB的安全隐患吗


此外,更重要的是,有没有办法消除这些风险?例如SSH隧道?

最好的方法是使用Amazon生成的密钥进行SSH隧道。
你也可以打开一个ip掩码为23.43.65.0/24的ip,也可以用你的桌面和亚马逊创建一个VPN。

我知道,当我让DB向世界开放时,我通常不会这样做,一天24小时,一周7天,自动过程会全天每秒尝试登录10-15次,每天猜测用户名和密码


如果您选择这种方式(我不建议这样做),最好确保您的密码非常、非常难以猜测,并且您是否可以将内置帐户重命名为“admin”或“administrator”以外的其他名称更好。

您无法通过SSH连接到RDS实例以进行隧道传输。您必须通过ssh隧道进入一个单独的/新的EC2实例,该实例可以访问RDS实例。您可以将证书与mysql一起使用,但您仍然将数据库服务器暴露给世界,使其成为DoS攻击的目标。最好是建立一个新的ec2实例并使用ssh隧道(请参阅-L选项)或VPN服务器(OpenVPN、vyatta或AWS marketplace的VPN设备)。即使使用SSH/VPN访问,您也希望允许您和任何其他连接到它的人使用尽可能小的网络范围。