在天蓝色的网站和VM之间保护网络

时间:2012-06-08 04:39:37

标签: azure azure-web-sites

据我所知,在windows azure中,您可以将虚拟机添加到虚拟网络,但我没有看到将网站添加到网络的选项。

从azure网站保护访问VM(MongoDb)的推荐方法是什么?

我更希望将数据库置于某种防火墙之后,而不是让流量通过公共互联网。

编辑:vm将托管MongoDb,因此不能选择使用Sql Azure或其他MSSql解决方案。

4 个答案:

答案 0 :(得分:3)

如果您希望在虚拟机中使用网络和自己的数据库,最好从保留的网站开始。由于资源限制和其他限制,共享网站可能不是一个好主意。

如果你的数据库是MongoDB,那么你有两个选择:

  1. 让您的ASP.NET MVC应用程序在虚拟机(Windows Server + IIS +您的应用程序 - IaaS)中运行,并让MongoDB在其他虚拟机上运行。如果两台机器都处于相同的DC状态,则无需使用网络。

  2. 让Azure ASP.NET MVC Web角色(PaaS)和虚拟机运行MongoDB(IaaS)。

  3. 在这两种情况下,您只需要配置一个连接字符串来连接MongoDB,并且不需要额外的网络修改就可以使它工作,因为所有计算机都在同一个DC内。

答案 1 :(得分:3)

旧问题,但现在Microsoft Azure支持此功能: http://azure.microsoft.com/en-us/documentation/articles/web-sites-integrate-with-vnet/

编辑: 首先,确保您已经设置了VNET并添加了网关(出于某种原因,添加网关需要很长时间......请确保在继续之前完成它。)

New-AzureVNetGateway -VNetName $vnetName -GatewayType DynamicRouting

网关也可以添加到门户网站中。

然后,你必须使用new Preview Portal来浏览你的网络应用程序并向下滚动到网络部分,然后点击"虚拟网络"按钮。然后,在现有连接列表下找到您的vnet。如果您没有看到它,那么您的网关无法正确设置。

答案 2 :(得分:1)

我不确定我理解你的问题,但我会尽力回答。一种方法是创建一个托管您的网站的VM(IaaS),例如MVC 3应用程序。 (创建其中两个,然后在Azure中加载平衡)。创建另一个VM(IaaS),这将是您的数据库VM。例如SQL Server。来自您的网站的连接字符串将允许您与数据库服务器通信

当用户访问您的网站时,他们将无法看到您的数据库未被公开曝光,他们只会看到您已为您的网站打开的端口80可浏览。您已经有效地创建了一个安全的Web站点,人们可以通过端口80浏览,无法访问您的数据库层。

上述模型使用IaaS进行所有操作,您也可以使用Azure PaaS(Web角色)运行Web站点的PaaS / IaaS,并在IaaS计算机上运行数据库(例如SQL Server)。同样,所有流量都将打到面向公众的网站,网站将有一个指向您的IaaS实例的连接字符串,只有能够与您的数据库实例进行通信。

有更多方法可以解决这个问题,通过WAWS(Windows Azure网站)提供MySQL(今天宣布)以及在Azure中使用SQL DB?

如果您解释了您的确切要求,那么我们可以更好地指导您?

我仍然不清楚你的虚拟网络部分以及它在哪里?

答案 3 :(得分:1)

您无法将Windows Azure网站添加到由其他Windows Azure部署组成的虚拟网络中。

只要您的数据库位于同一数据中心内,就不需要虚拟网络。如果您创建Windows Azure网站,则只需与Windows Azure SQL数据库通信 - 只需通过门户网站设置一个,获取连接字符串和凭据,然后将其添加到您的应用程序。实际上,当您从库(使用SQL Server与MySQL)创建网站时,系统会要求您创建新数据库或选择现有数据库。

在门户网站中,您可以轻松创建自己的数据库(这是数据库即服务,只需几秒钟)。完成后,您可以启用防火墙规则以允许Windows Azure服务访问它。然后不要添加任何进一步的防火墙规则。此时,只有Windows Azure服务甚至可以查找您的数据库,只有知道凭据的服务才能连接到它。

正如@ user728584建议的那样,您也可以在虚拟机中运行数据库,但是您必须通过公共IP地址访问它。如果您访问本地数据库,则会遇到同样的问题,因为无法将vpn客户端安装到Azure网站中。您可以使用Web角色中托管的Web应用程序执行此操作(您可以执行任何操作)。