当前位置: 首页 > 知识库问答 >
问题:

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

弓泰
2023-03-14

最初,我尝试使用IP地址限制从应用服务对blob存储的访问,但事实证明,您只能使用虚拟网络执行此操作:从Azure应用服务到blob存储的防火墙访问

我希望能够实现这一点,而无需设置点对点VPN。我在Azure中设置虚拟网络的步骤如下:

  • 创建网络安全组“securitygroup frontend”,添加名为Web的自定义入站规则,源服务标记:Internet,源端口范围:*,目标:任意,目标端口范围:80443,协议:任意,操作:允许,优先级:100
  • 创建了地址空间为192.168.0.0/23的虚拟网络,子网称为前端地址范围为192.168.0.0/26,网络安全组为:securitygroup frontend and subnet delegation to Microsoft。Web/serverFarms和服务endpointMicrosoft。存储
  • 转到应用程序服务-

我不得不将Azure诊断和日志(如密钥保险库、服务总线和sql Azure)移动到其自己的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个答案

梁嘉祥
2023-03-14

是的,您可以使用VNet来实现这一点,但您需要在带有应用服务环境的VNet中部署web应用。使用VNet集成无法做到这一点。将Azure服务集成到Azure虚拟网络可以从虚拟机或虚拟网络中的计算资源对服务进行私有访问。然而,常规应用服务计划中的web应用服务是多租户的。使用ASE,您可以将其部署到VNet中。

你可以从这个类似的帖子中得到更多的细节和解释。根据silent的评论,您还可以考虑将web应用部署在一个容器中,该容器可以部署在具有一些限制的VNet中。

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

首先,您可以使用未使用的子网部署新的VNet集成。完成VNet集成并重新启动web应用后,您可以为此子网启用服务endpoint和子网委派。最后,您可以在存储帐户的防火墙中添加子网。

新版本正在预览中,目前尚未正式发布。可能并非所有功能都可用。您还可以检查以下特征。

  • 无需网关即可使用新的VNet集成功能。
  • 除了与ExpressRoute连接的VNet集成之外,您无需任何其他配置即可跨ExpressRoute连接访问资源。
  • 应用程序和VNet必须位于同一区域。
  • 新功能需要资源管理器VNet中有一个未使用的子网。
  • 您的应用必须位于能够扩展到Premium v2的Azure应用服务部署中。
  • 您的应用服务计划必须是标准、高级或高级V2计划新功能在预览版中不支持生产工作负载
  • 新的VNet集成功能不适用于应用服务环境中的应用。
  • 您不能删除具有集成应用程序的VNet。
  • 路由表和全局对等互连在新的VNet集成中尚不可用。
  • 每个应用服务计划实例使用一个地址。由于分配后无法更改子网大小,因此请使用一个可以超过最大规模大小的子网。建议使用32个地址的 /27,因为这将容纳缩放到20个实例的应用服务计划。
  • 您可以使用新的VNet集成功能使用服务endpoint安全资源。为此,请在用于VNet集成的子网上启用服务endpoint。
 类似资料:
  • 我为Azure存储帐户启用了虚拟网络和防火墙访问限制,但遇到了一个问题,即我无法从Azure Functions(ASE环境)访问存储帐户,尽管ASE公共地址是作为例外添加的。此外,我添加了所有环境的虚拟网络,只是为了确保。是否有任何方法可以检查函数/其他服务试图从哪个地址访问存储帐户?此外,我有一个勾选“允许受信任的Microsoft服务访问此存储帐户”。我不确定“受信任的Microsoft服务

  • 我有一个Azure blob存储帐户,该帐户仅对选定的网络进行防火墙保护。我想从运行在动态计划上的函数应用访问此存储帐户,我知道该动态计划的出站IP地址。问题是,我将这些出站IP添加到blob存储的防火墙和虚拟网络设置中允许的IP地址中,但我仍然继续收到以下错误: 此请求无权执行此操作。 有人能指出我哪里出错了吗? N、 B.我使用PythonSDK访问带有帐户名和帐户密钥的blob存储!

  • 我有一个powershell脚本,它在连接到Azure blob存储和AzureSQL的Azure VM中运行。blob存储和SQL都受到防火墙的保护,blob存储是VNet的一部分。VM位于自己的VNet上。我将VM的IP地址插入Azure存储和sql azure中。对AzureSQL访问很好,但是当我尝试连接到blob存储时,我收到错误消息 “Get-AzStorageContainer:未授

  • 我最近在Azure存储中遇到了专用endpoint功能,并试图实现它以从VNet进行安全访问。但是,我在同时使用防火墙、虚拟网络服务endpoint和专用endpoint时遇到了访问问题。 我有两个VNet(VNet1 具有启用了服务endpoint功能的子网的VNet1在存储帐户防火墙中被列入白名单 鉴于上述设置,当我尝试访问位于VNet2下的VM内的此存储帐户Blob容器时,我遇到了授权问题。

  • 我想要实现什么 通过Azure Function连接到位于防火墙后面的Azure BLOB存储帐户。 迄今为止采取的步骤 Azure Function针对按预期工作的公共存储帐户开发和测试。 在我的Azure Function的Azure资源管理器之后,我找到出站地址(条目),并将它们添加到存储帐户的防火墙中。 问题 在尝试对具有防火墙的存储帐户运行Azure功能时,我收到一个状态:500内部服务

  • 如果我在Azure存储帐户上添加只允许从我的IP地址访问的防火墙规则,我仍然可以成功访问该存储帐户中的表和队列存储,但当我尝试访问任何Blob或文件存储时,会出现错误。 使用Microsoft Azure Storage Explorer时,我看到的错误是“无法检索子资源”。此请求未被授权执行此操作' 防火墙规则对blob和表存储的工作方式不同似乎很疯狂。有什么想法吗?