【问题标题】:Desktop app connecting to a remote Amazon RDS mysql instance连接到远程 Amazon RDS mysql 实例的桌面应用程序
【发布时间】:2013-12-17 18:05:13
【问题描述】:

我有一个需要通过 jdbc 连接到远程 mysql 实例的 java swing 桌面应用程序。我正在考虑为此使用 Amazon RDS 并创建一个 IP 为 0.0.0.0 的安全组 - 有效地允许所有 IP 连接到 mysql 实例。

我知道这种方法存在安全隐患,我们应该理想地使用 Web 应用程序在远程数据库前面。桌面应用程序应该通过 rest/soap 访问网络应用程序,然后通过网络应用程序公开的服务访问其背后的数据库。

现在工作量很大。由于我已经将桌面应用程序连接到本地数据库。我只想将数据库移到云端,以便用户可以从安装了相同 java swing 应用程序的任何其他系统访问相同的数据库。

有人能帮我列出像这样在互联网上公开 Amazon RDS 数据库的安全隐患吗?

另外,更重要的是,有什么方法可以消除这些风险?比如SSH Tunneling?

【问题讨论】:

    标签: java mysql amazon-web-services amazon-rds


    【解决方案1】:

    最好的方法是使用 Amazon 生成的 KEY 的 SSH 隧道。 您还可以打开一个掩码 IP 为 23.43.65.0/24 的 ip,还可以使用您的桌面和亚马逊创建一个 VPN。

    【讨论】:

    • 您无法通过 SSH 连接到 RDS 实例进行隧道传输。您必须通过 ssh 隧道进入可以访问 RDS 实例的单独/新 EC2 实例。
    【解决方案2】:

    我知道,当我每周 7 天、每天 24 小时将数据库向世界开放时,我通常不会这样做,自动化过程会整天尝试以大约每秒 10-15 次的速度登录,每天都在猜测用户名和密码。

    如果你走这条我不推荐的路线,最好确保你的密码非常非常难以猜测,并且如果你可以将内置帐户重命名为“admin”或“administrator”以外的其他名称更好。

    【讨论】:

    • 您可以在 mysql 中使用证书,但您仍然将数据库服务器暴露给全世界,使其成为 DoS 攻击的目标。最好建立一个新的 ec2 实例并使用 ssh 隧道(请参阅 -L 选项)或 VPN 服务器(OpenVPN、vyatta 或来自 AWS 市场的 VPN 设备)。即使使用 SSH/VPN 访问,您也希望允许您和其他连接到它的人所需的尽可能小的网络范围。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-06-03
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    相关资源
    最近更新 更多