我的网站托管在 EC2 服务器上。如果我想让用户选择使用本地 MSSQL 服务器,那么我该如何配置呢?
首先,这可能吗?
我需要静态 IP 吗?
如何配置防火墙?
例如 ping:“静态 IP:端口”=> 170.111.111.111:1122
答案1
我想我知道你可能想做什么......我想你可能会问如何让你托管的网站以任意 MSSQL 服务器为目标。
确实没有好的方法可以做到这一点。我想,您可以让您的客户端指定他们的 MSSQL 连接字符串到您的应用程序;如何做到这一点取决于您的应用程序以及它是否支持这一点。大多数情况下,数据库连接字符串是在服务器上配置的,无法通过应用程序的用户界面访问,但您的连接字符串可能可以接受这一点。您的客户端必须允许从您的应用程序通过 TCP 端口 1433 或他们选择的任何备用端口进行入站访问,并且您需要确保您的 EC2 实例上有出口。
这里的问题是,客户需要允许从互联网或至少从 EC2 中的应用程序连接到他们显然敏感的数据库。他们必须希望您始终保持相同的 IP,并且永远不会在未事先通知他们的情况下将其释放。您严格来说不需要静态 IP 来执行此操作,但不这样做就无法确保安全。亚马逊确实通过 EC2 实例(弹性 IP)免费提供这些。
您最好希望只有客户端能够设置该数据库服务器,您的网站正在使用 TLS,并且 TLS 也用于数据库连接。如果其他人设法设置它,您的网站最终可能会成为恶意软件的传播地。
这对您和您的客户来说都是一场维护噩梦,并且会大大增加双方的攻击面。客户选择这种方式来改善他们的“安全性和隐私性”是非常愚蠢的,因为与将数据托管在使用地点附近相比,这实际上会大大增加其风险。
在您的应用程序服务器和客户端的 SQL 服务器之间创建 VPN 链接将会是更好的架构。