我在同一订阅中拥有一个Azure Web App和一个Azure SQL Server。如下图所示,它们都连接到相同的VNet子网。 SQL Server配置为不允许Azure资源和服务访问服务器,因为它只应允许从连接的子网或一组IP规则进行访问。
[不幸的是,SQL Server主动拒绝来自Web应用程序的任何连接,指出不允许Web应用程序IP访问服务器。
有趣的是,我在另一个订阅上具有完全相同的配置。
我可能会缺少什么?
快照:
1-在这里您可以看到连接到“ webapps”子网的Web应用程序
2-在这里您可以看到连接到同一子网的SQL Server
3-这就是我得到的错误
Azure中的虚拟网络与它在本地的工作方式完全不同。
我在生产环境中也遇到了类似的问题,并且需要深入研究,有效的解决方案(满足安全标准并创建与数据库的安全连接)是为虚拟网络中的SQL访问创建私有端点。然后,所有对SQL的调用都是在内部执行的(它没有在互联网上进行),并且数据库拒绝了所有公共调用。
[就您现在的情况而言,您已禁用“允许Azure应用程序访问”,因此当您的应用程序尝试访问SQL时,服务器将检查ip以查找是否被列入白名单。因此,快速的解决方案将是以下之一:
如果您谈论一个适当的生产环境具有安全性规定,我建议您采用更繁琐的专用端点路径。
您必须在sql fw中配置来自应用程序服务的出站IP。您可以在应用程序服务的属性下找到它们。 Documentation。原因是VNET集成不会在您为其配置的VNET中为您的应用程序服务提供出站IP,因此您配置的FW无法正常工作。