使用虚拟网络从Azure应用服务到Blob存储的防火墙访问

时间:2019-05-13 14:09:05

标签: azure azure-web-sites azure-storage

最初,我尝试使用IP地址限制从应用程序服务对blob存储的访问,但是事实证明,您只能使用虚拟网络来做到这一点:Firewall access from Azure app service to blob storage

我希望能够在不设置点对点VPN的情况下实现这一目标。我在Azure中设置虚拟网络所采取的步骤如下:

  • 创建网络安全组“ securitygroup-frontend”,添加自定义 名为Web的入站规则,带有源:服务标签,源服务标签: Internet,源端口范围:*,目标:任意,目标端口 范围:80、443,协议:任意,操作:允许,优先级:100
  • 创建的虚拟网络的地址空间为192.168.0.0/23,子网称为前端地址范围为192.168.0.0/26,具有网络安全组:securitygroup-frontend和将子网委派给Microsoft.Web / serverFarms和服务终结点Microsoft.Storage
  • 进入应用程序服务->网络->配置VNet集成-> 添加VNet预览并选择您创建的子网
  • 进入存储->防火墙和虚拟网络->配置VNet集成->选择“选定的网络”,然后添加刚刚创建的虚拟网络和子网。

我不得不将Azure的诊断和日志(例如密钥库,服务总线和sql蓝色)移到其自己的Blob存储中,因为这些要求和Blob存储需要在虚拟网络外部进行,并且无法在内部运行。该应用程序服务在标准计划中。应用程序服务,blob存储和虚拟网络都在同一区域。

此问题和答案未提供任何见解:https://social.msdn.microsoft.com/Forums/azure/en-US/9f4d8aeb-68a6-4ec1-9e11-bee2d1301792/allow-access-to-azure-storage-account-only-from-an-app-service?forum=windowsazurewebsitespreview

上述步骤虽然阻止了从应用程序服务对Blob存储的访问,但其中的任何资产均返回错误:(403)禁止。如果我从Blob存储中删除虚拟网络,则可以正常工作。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用VNet进行此操作,但是您需要使用App Service Environments在VNet中部署Web应用程序。您无法使用VNet integration执行此操作。 Integrating Azure services to an Azure virtual network允许从虚拟机私有访问服务或在虚拟网络中计算资源。但是,常规应用程序服务计划中的Web应用程序服务是多租户。使用ASE,您可以将其部署到您的VNet中。

您可以从类似的thread中获得更多详细信息和解释。根据 silent 的评论,您还可以考虑将Web应用程序部署在一个容器中,该容器可以有一定限制地部署在VNet中。

更新

有时候,网络的部署顺序很重要。在您的情况下,您需要在VNet集成之前启用服务端点。我建议删除集成应用程序子网VNet中的NSG限制以进行测试。然后,您可以检查以下步骤。

首先,您可以使用未使用的子网部署新的VNet集成。在完成VNet集成并重新启动Web应用程序之后,您可以为该子网启用服务端点和子网委派。最后,您可以将子网添加到存储帐户的防火墙中。

新版本位于“预览”中,当前不在GA中。可能不是所有功能都可用。您还可以检查以下特征。

  
      
  • 不需要网关即可使用新的VNet集成功能。
  •   
  • 除了与ExpressRoute连接的VNet集成之外,您无需进行其他任何配置即可访问ExpressRoute连接上的资源。
  •   
  • 该应用程序和VNet必须位于同一区域。
  •   
  • 新功能需要在Resource Manager VNet中使用未使用的子网
  •   
  • 您的应用程序必须位于能够扩展到Premium v​​2的Azure App Service部署中。
  •   
  • 您的App Service计划必须是Standard,Premium或PremiumV2计划,新功能不支持生产工作负载,而   在预览中
  •   
  • 新的VNet集成功能不适用于App Service环境中的应用程序。
  •   
  • 您不能删除带有集成应用程序的VNet。
  •   
  • 新的VNet集成尚不提供路由表和全局对等连接。
  •   
  • 每个App Service计划实例使用一个地址。由于分配后无法更改子网大小,因此请使用可以   超过您最大秤的尺寸。具有32个地址的/ 27是   建议的大小,以适应App Service计划   可以扩展到20个实例。
  •   
  • 您可以使用新的VNet集成功能消耗服务端点保护的资源。为此,请在   用于VNet集成的子网。
  •   
相关问题