Azure Function Apps 的白名单组
Whitelist group for Azure Function Apps
我们正在构建多个 Azure Function App,每个 Function App 默认都有自己的 IP 白名单。
我们有多个第三方将使用这些功能应用程序。每个第三方都可能有多个 IP 地址。某些功能应用程序可能会被所有第三方使用,其他的可能会被一个第三方使用,但不会被另一个使用,等等。
我们想要一种集中管理的方式。我们有一个过去用来维护 IP 地址的 Powershell,但想知道是否有更好的解决方案 - 也许 Azure 本身内置了一些模板?
这一定是一个相当普遍的问题,请问大家有什么建议吗?
您可以使用 Microsoft.Web/sites/config
ARM 对象。您可以在现有函数之上部署配置对象,或将其包含在完整函数应用程序模板的 ARM 定义中。通过这种方式,您可以集中管理 IP 规则并对它们进行版本控制。使用 PowerShell,您可以根据您的标准编排 IP 规则的 ARM 部署。
https://docs.microsoft.com/en-us/azure/templates/microsoft.web/2018-11-01/sites/config
{
"type": "Microsoft.Web/sites/config",
"apiVersion": "2018-11-01",
"name": "[concat(variables('functionName'), '/web')]",
"location": "East US",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('functionName'))]"
],
"properties": {
"ipSecurityRestrictions": [
{
"ipAddress": "00.00.00.00/00",
"action": "Allow",
"tag": "Default",
"priority": 1000,
"name": "Rule 1"
},
{
"ipAddress": "00.00.00.00/00",
"action": "Allow",
"tag": "Default",
"priority": 2000,
"name": "Rule 2"
},
{
"ipAddress": "Any",
"action": "Deny",
"priority": 2147483647,
"name": "Deny all",
"description": "Deny all access"
}
]
}
}
主要问题是 IP 地址经常变化。我更喜欢通过每个客户端或/每个客户端的订阅密钥和 API.
来控制它
为此,您可以在 API 的前面添加一个 API 管理(API 网关模式)。您还可以使用 API 管理继续控制每个 IP 地址,但我认为 api 键是一个很好的做法。
更多信息:
我们正在构建多个 Azure Function App,每个 Function App 默认都有自己的 IP 白名单。
我们有多个第三方将使用这些功能应用程序。每个第三方都可能有多个 IP 地址。某些功能应用程序可能会被所有第三方使用,其他的可能会被一个第三方使用,但不会被另一个使用,等等。
我们想要一种集中管理的方式。我们有一个过去用来维护 IP 地址的 Powershell,但想知道是否有更好的解决方案 - 也许 Azure 本身内置了一些模板?
这一定是一个相当普遍的问题,请问大家有什么建议吗?
您可以使用 Microsoft.Web/sites/config
ARM 对象。您可以在现有函数之上部署配置对象,或将其包含在完整函数应用程序模板的 ARM 定义中。通过这种方式,您可以集中管理 IP 规则并对它们进行版本控制。使用 PowerShell,您可以根据您的标准编排 IP 规则的 ARM 部署。
https://docs.microsoft.com/en-us/azure/templates/microsoft.web/2018-11-01/sites/config
{
"type": "Microsoft.Web/sites/config",
"apiVersion": "2018-11-01",
"name": "[concat(variables('functionName'), '/web')]",
"location": "East US",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('functionName'))]"
],
"properties": {
"ipSecurityRestrictions": [
{
"ipAddress": "00.00.00.00/00",
"action": "Allow",
"tag": "Default",
"priority": 1000,
"name": "Rule 1"
},
{
"ipAddress": "00.00.00.00/00",
"action": "Allow",
"tag": "Default",
"priority": 2000,
"name": "Rule 2"
},
{
"ipAddress": "Any",
"action": "Deny",
"priority": 2147483647,
"name": "Deny all",
"description": "Deny all access"
}
]
}
}
主要问题是 IP 地址经常变化。我更喜欢通过每个客户端或/每个客户端的订阅密钥和 API.
来控制它为此,您可以在 API 的前面添加一个 API 管理(API 网关模式)。您还可以使用 API 管理继续控制每个 IP 地址,但我认为 api 键是一个很好的做法。
更多信息: