如何将 Azure SQL 数据库中的函数应用程序列入白名单

use*_*392 9 whitelist azure azure-sql-database azure-functions

我需要配置Azure SQL Database防火墙设置,以便它只能由我的应用程序访问Azure Function。问题是我正在消耗计划中运行该应用程序,据我所知,即使我不采取任何操作,出站 IP 地址也可能会发生变化。

有没有办法将应用程序列入白名单,以便保护数据库免受不需要的连接的影响?

我想到了按 Azure 区域列入白名单,因为所有内容都托管在同一区域中,但是如何防范同一区域中的其他应用程序呢?这就是为什么我考虑使用特定的 IP 地址。我对这种方法唯一关心的是,我不知道其他功能应用程序是否可以与我自己的应用程序共享相同的出站 IP 地址。

PS 目前,我的防火墙设置拒绝公共网络访问并仅允许 Azure 服务连接。

Meh*_*ral 5

有多种方法可以实现这一目标。

您可能想要集成 VNet 或获取 Azure Functions 的静态 IP 地址

图片来自:https ://learn.microsoft.com/en-us/azure/azure-functions/functions-networking-options

在此输入图像描述

但是,我从您的评论中看到,您不想使用高级计划。

我可以建议您实施托管服务身份的最后一件事。

其背后的想法是,您不使用连接字符串连接数据库,而是使用您授予的访问令牌连接到数据库。如果您不在同一身份中,则无法获取访问令牌。

本教程解释了应用服务的总体思路: https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-connect-msi

本教程几乎涵盖了您真正想要实现的目标。

https://www.azurecorner.com/using-management-service-identity-in-azure-functions-to-access-azure-sql-database/

祝你好运!


Tim*_*ths 5

我遇到了同样的问题,但管理身份并没有多大区别。

在 SQL Server 的防火墙设置中,有一个选项允许 Azure 资源访问服务器。对我来说,这被设置为“否”,但需要设置为“是”。

在此输入图像描述