首页 文章

如何使用虚拟网络保护从App Service到Azure Sql Database的访问?

提问于
浏览
6

场景

我想用虚拟网络,以限制只能访问从我的应用程序服务Azure数据库,这样,我可以打开的“允许访问应用程序的服务”中的防火墙设置

Allow access to App Services screenshot

我做了什么:

  • 我去了App Service - > Networking - > VNET Integration - > Setup - > Create New Virtual Network

  • 我用默认设置创建了新的VNET .

  • 创建VNET后,我进入App Service - > Networking - > VNET Integration并确保VNET已连接

  • 我去了SQL防火墙settigs - >虚拟网络 - >添加现有虚拟Newtork并选择了我的VNET . 我've left default subnet and address space: 2902163 and I' ve未选中IgnoreMissingServiceEndpoint标志 .

我现在可以在我的VNET中看到Microsoft.Sql服务 endpoints :
enter image description here

问题

但是,我还在

SqlException:无法打开登录请求的服务器'my-sqlserver' . IP地址为'52 .233 ..'的客户端不允许访问服务器:

我错过了什么?

2 回答

  • 2

    不幸的是,你暂时无法实现这种情况 .

    Why:

    • 当您使用VNET集成Web应用程序时,您的Web应用程序可以与VNET通信,如 Web App <---> VNET .

    • 当您使用SQL防火墙允许来自特定互联星空杨国平,所以从VNET地址空间trffic可以与您的SQL像 VNet <---> SQL server 通信 .

    • 设置完所有配置后,您的方案应为 Web App <---> VNET <---> SQL server . The important thing is that the traffic from Web App cannot go trough the VNET to the SQL server, because the web App is not wthin the VNET, it's out side the VNET! 因此,当您使用Web App尝试访问SQL服务器时,triffic不是来自VNET .

    Solution:

    解决方案是将您的Web App放入VNet . 因此,您可以使用Azure ASE来实现此目的 .

    Reference:

    VNet Integration使您的Web应用程序可以访问虚拟网络中的资源,但不会从虚拟网络授予对Web应用程序的私有访问权限 . 专用站点访问是指仅允许从专用网络(例如Azure虚拟网络)访问您的应用程序 . 专用站点访问仅适用于配置了内部负载均衡器(ILB)的ASE . 有关使用ILB ASE的详细信息,请从以下文章开始:创建和使用ILB ASE .

    类似案例:App Service VNet Integration with Azure Storage Service Enpoint

  • 1

    要考虑的一个选项将允许您删除防火墙设置"Allow access to App Services"是 add firewall rules for the outbound IP addresses of your specific App Service(s) .

    您可以在App Service的“属性”部分中找到当前列表,也可以使用PowerShell ...

    $outboundIps = (Get-AzureRmResource -ResourceGroupName $rg -ResourceType Microsoft.Web/sites -ResourceName $appService).Properties.outboundIpAddresses
    

    几个重要的警告 .

    • 出站IP可以更改,但可以预测(请参阅下面的链接) . 我将PowerShell脚本作为更新防火墙规则的VSTS发布过程的一部分运行 . (如果您还通过发布过程而不是Azure门户管理资源及其规模,则此方法似乎可靠 . )

    • 我无法找到任何信息来确认这些IP是否是您的App Service所特有的 . 这是一个需要考虑的风险 .

    https://docs.microsoft.com/en-us/azure/app-service/app-service-ip-addresses

相关问题