如何使用虚拟网络保护从应用程序服务到Azure Sql数据库的访问? 脚本
我想使用虚拟网络来限制只能从我的应用程序服务访问Azure数据库,这样我就可以在防火墙设置中打开“允许访问应用程序服务” 我所做的:如何使用虚拟网络保护从应用程序服务到Azure Sql数据库的访问? 脚本,azure,azure-sql-database,azure-web-app-service,firewall,azure-virtual-network,Azure,Azure Sql Database,Azure Web App Service,Firewall,Azure Virtual Network,我想使用虚拟网络来限制只能从我的应用程序服务访问Azure数据库,这样我就可以在防火墙设置中打开“允许访问应用程序服务” 我所做的: 我进入了应用服务->网络->VNET集成->设置->创建新的虚拟网络 我已经用默认设置创建了新的VNET 创建VNET时,我转到应用程序服务->网络->VNET集成,并确保VNET已连接 我去了SQL防火墙设置->虚拟网络->添加现有虚拟网络并选择了我的VNET。我保留了默认子网和地址空间:“default/10.0.0.0/24”,并且未选中IgnoreMis
我遗漏了什么?不幸的是,您现在无法实现此场景 原因:
Web应用程序VNET
那样与VNET进行通信VNet SQL server
进行通信Web-App VNET-SQL-server
重要的是Web应用程序的流量不能通过VNET传输到SQL server,因为Web应用程序不在VNET内,而是在VNET外因此,当您使用Web App尝试访问SQL server时,流量不是来自VNET类似的情况:
< P> >考虑一个选项,允许您删除防火墙设置“允许访问应用程序服务”是“<强>添加防火墙规则,用于您的特定应用程序服务的出站IP地址< /强> 您可以在应用程序服务的“属性”部分找到当前列表,或使用PowerShell$outboundIps = (Get-AzureRmResource -ResourceGroupName $rg -ResourceType Microsoft.Web/sites -ResourceName $appService).Properties.outboundIpAddresses
有几个重要的警告
如果您想通过服务端点锁定应用程序对Azure SQL、Storage、Cosmos DB等服务的访问,您可以使用新的VNet集成功能。该功能的早期形式需要网关,并构建在点对点VPN上。应用程序的源IP将是点到点地址之一。只有当源IP是VNet地址之一时,服务端点才起作用 通过新的VNet集成,您的应用程序后端将使用选定子网中的IP进行呼叫。这意味着您可以在该子网上设置服务端点
不要将其与应用程序的服务端点混淆。这是最近发布的将应用程序流量锁定到选定VNet/子网的功能 我相信Azure现在已经包含了对您的场景的支持,允许像这样的连接
Web App VNET SQL server
,这与@Waine Yang的回答相反。我刚刚将Azure函数配置为通过专用VNET与只能通过该VNET访问的SQL Server进行通信
现在,当您尝试在应用程序服务中设置VNET集成时,Azure会显示以下消息(请注意,它还显示或通过您的Azure VNET):
这是一个关于如何使用Terraform创建它的示例:所以你是说每个月我要花1000美元以上(ASE v2的月费)?对于什么都不做的应用程序服务,只访问SQL数据库?嗨@Liero。我明白你的意思。但这只是这种情况下的解决方案。这取决于产品特性。ASE可以做更多的事情。我想说的主要思想是VNet集成不能让您的Web应用程序位于VNet中。:-)好的,谢谢。将来有什么计划改变它吗?我的意思是限制SQL访问网络级别的单一应用程序服务?@Liero我不知道。但我会将此问题反馈给Azure PG团队。这只是Azure多租户web应用程序毫无价值的另一个原因。任何信息安全专业人员都不会允许SQL服务器(托管或非托管)大卫布朗说这是可能的,但我也没有成功。有什么建议吗?为了节省每个人阅读下面答案的时间,请知道这仍然不是通过Azure直接做到的。您可以使用服务端点,但前提是您的应用程序服务与SQL DB位于同一区域。根据应用程序服务体系结构,我的理解是,这些IP地址对于任何一个客户都是/不是/唯一的。除非您拥有$1000/mo+ASE,否则您将与其他许多人共享这些外部IP地址。@b您可能需要帮助吗