我们正在开发一个使用Windows Azure云服务和SQL Azure数据库的应用程序。我们有一个ASP .NET MVC项目,它使用数据库优先在Visual Studio解决方案中创建实体。现在我们需要将数据库架构部署到Azure。
目前这是不可能的,因为我们的网络阻止端口1433上的出站访问,这是SQL Azure唯一可用的端口。我们已经要求我们的安全团队允许打开1433端口出站,但他们有一些顾虑:
在Microsoft的Internet防火墙上允许使用未加密的数据库流量(端口1433)。虽然数据库中没有敏感信息,但如果数据库凭据未加密并且可能导致污损风险,则管理凭证可能是明文形式。
在互联网防火墙上打开了哪些网络端口,用于访问托管网站和数据库的系统?
我认为第一个问题的关注点是管理Azure数据库的凭据将在部署期间未加密的端口1433上发送。对于第二个,我认为答案是我们可以配置端点来打开我们想要的云服务端口,但默认情况下它们是关闭的。
我做了一些研究,但无法从微软的这些问题中找到任何明确的答案,这让我觉得我们提出了错误的问题。我会对那些比我有更多经验的人的见解感兴趣。
答案 0 :(得分:2)
SQL Azure仅根据安全指南和限制(Windows Azure SQL数据库)文章接受加密(SSL)通信:http://msdn.microsoft.com/en-us/library/windowsazure/ff394108.aspx
加密和证书验证之间的所有通信 Windows Azure SQL数据库和您的应用程序需要加密 (SSL)始终。如果您的客户端应用程序未验证 连接时的证书,您与Windows Azure SQL的连接 数据库容易受到中间人的影响。攻击。验证 带有应用程序代码或工具的证书,明确请求 加密连接,不信任服务器证书。如果你的 应用程序代码或工具不会请求加密连接 仍将收到加密连接。但是,他们可能不会 验证服务器证书,因此将容易受到人员的影响 在中间"攻击。使用ADO.NET验证证书 应用程序代码,设置Encrypt = True和TrustServerCertificate = False in 数据库连接字符串。有关更多信息,请参见如何: 使用ADO.NET连接到Windows Azure SQL数据库。 SQL Server Management Studio还支持证书验证。在连接中 在“服务器”对话框中,单击“连接”上的“加密连接” 属性选项卡。 SQL Server Management Studio不支持Windows SQL Server 2008 R2之前版本中的Azure SQL数据库。
SQL Azure使用1433和8443. Azure的端口要求可在此处获取:http://msdn.microsoft.com/en-us/library/windowsazure/jj136814.aspx
如果要限制与特定IP地址之间的防火墙流量,可以在此处获取Azure数据中心IP范围:http://msdn.microsoft.com/en-us/library/windowsazure/dn175718.aspx
答案 1 :(得分:0)
一些选项(除了DarrelNorton的回答): - 您可以使用专用的SQL Server VM,然后您可以使用端口转发,并且端口问题不是问题,您可以安装其他防火墙选项和其他安全软件 - 专用SQL VM允许您利用SQL Server中的TDE(Trans.Data Encryption),或者您可以执行SQL Azure DB中不可用的更高级加密技术 - 与其他MSFT客户端隔离的专用SQL VM。如果您被黑客入侵,可以从脚本中重新配置VM - 如果您担心安全性(VPN已加密),您可以在MSFT数据中心和本地网络之间使用虚拟网络连接