访问Amazon EC2服务器托pipe数据库的安全方法

我有亚马逊EC2服务器上托pipe的MySQL数据库,我想远程访问它进行更改。 由于我没有静态IP,我不能允许在防火墙的特定IP安全访问端口3306。

有没有其他方法可以安全地从远程机器打开3306? 一个解决scheme可以隧道端口3306通过SSH,所以任何其他安全访问解决scheme,我们必须访问3306?

谢谢

SSH隧道可能是最简单的选项,因为它不需要改变你的MySQLconfiguration。 它与使用MySQL内置的SSL支持一样安全。

在您的工作站上,运行:

$ ssh user@host -L3306:localhost:3306 

然后连接到本地主机:3306,你会一切设置。 您可能需要为将要连接的用户添加授权。

您可能会发现MySQL SSL文档很有用:

http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html

在你的情况下,我build议至less使用服务器端SSL来保护你的密码和数据,但使用(在服务器上的自签名和可信赖的)客户端SSL证书也不是一个坏主意。

我通常不build议使用基于主机的身份validation,也不要使用基于主机的ACL来保护您的连接,因为IP(和某些人使用的DNS名称)可能被欺骗和劫持,而且您也不需要对受信任的客户端的pipe理访问就足以妥协了,而且通常这些事情比妥协一个相当长的私钥更容易做到。 另外,如果你不使用SSL,你很容易受到stream量嗅探攻击。

如果您正在讨论Amazon的RDS实例,那么您已经可以使用SSL进行连接了 。 如果您相应地configuration您的数据库用户,您也可以将其作为一项要求。