最初,我尝试使用IP地址限制从应用程序服务对blob存储的访问,但是事实证明,您只能使用虚拟网络来做到这一点:Firewall access from Azure app service to blob storage
我希望能够在不设置点对点VPN的情况下实现这一目标。我在Azure中设置虚拟网络所采取的步骤如下:
我不得不将Azure的诊断和日志(例如密钥库,服务总线和sql蓝色)移到其自己的Blob存储中,因为这些要求和Blob存储需要在虚拟网络外部进行,并且无法在内部运行。该应用程序服务在标准计划中。应用程序服务,blob存储和虚拟网络都在同一区域。
上述步骤虽然阻止了从应用程序服务对Blob存储的访问,但其中的任何资产均返回错误:(403)禁止。如果我从Blob存储中删除虚拟网络,则可以正常工作。我在做什么错了?
答案 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 v2的Azure App Service部署中。
- 您的App Service计划必须是Standard,Premium或PremiumV2计划,新功能不支持生产工作负载,而 在预览中
- 新的VNet集成功能不适用于App Service环境中的应用程序。
- 您不能删除带有集成应用程序的VNet。
- 新的VNet集成尚不提供路由表和全局对等连接。
- 每个App Service计划实例使用一个地址。由于分配后无法更改子网大小,因此请使用可以 超过您最大秤的尺寸。具有32个地址的/ 27是 建议的大小,以适应App Service计划 可以扩展到20个实例。
- 您可以使用新的VNet集成功能消耗服务端点保护的资源。为此,请在 用于VNet集成的子网。