You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell为Azure Logic App添加IP白名单限制?

嘿,我刚好折腾过这个需求,给你整理了两种常见Logic App类型的PowerShell实现方案——毕竟消耗型和标准型的IP限制配置逻辑不一样,得分开说:

针对消耗型Logic App的IP白名单配置

消耗型Logic App的IP限制是在工作流级别管控的,得通过Azure Resource Manager的方式来更新访问控制规则:

  1. 先获取当前工作流的访问控制配置:
$resourceGroupName = "你的资源组名称"
$logicAppName = "你的消耗型Logic App名称"
$workflowName = "你的工作流名称"

# 拉取当前的访问控制设置
$currentAccessControl = Get-AzResource -ResourceGroupName $resourceGroupName -ResourceType "Microsoft.Logic/workflows" -ResourceName "$logicAppName/$workflowName" -ApiVersion "2019-05-01" | Select-Object -ExpandProperty Properties | Select-Object -ExpandProperty accessControl
  1. 把要添加的IP/CIDR加到允许列表里(会自动跳过已存在的规则,避免重复):
# 定义要加入白名单的IP或CIDR范围
$newAllowedIp = "192.168.1.0/24"

# 初始化triggers的IP规则数组(如果之前没设置过)
if (-not $currentAccessControl.triggers.ipRules) {
    $currentAccessControl.triggers.ipRules = @()
}

# 检查IP是否已在白名单中,不在的话就添加
$existingIp = $currentAccessControl.triggers.ipRules | Where-Object { $_.value -eq $newAllowedIp }
if (-not $existingIp) {
    $currentAccessControl.triggers.ipRules += @{
        action = "Allow"
        value = $newAllowedIp
    }
}

# 如果需要限制actions的访问,同样可以更新actions.ipRules数组,代码和上面类似
# if (-not $currentAccessControl.actions.ipRules) {
#     $currentAccessControl.actions.ipRules = @()
# }
# $currentAccessControl.actions.ipRules += @{
#     action = "Allow"
#     value = $newAllowedIp
# }
  1. 最后提交更新到Azure:
# 构建要更新的属性对象
$updatedProperties = @{
    accessControl = $currentAccessControl
}

# 推送配置更新
Set-AzResource -ResourceGroupName $resourceGroupName -ResourceType "Microsoft.Logic/workflows" -ResourceName "$logicAppName/$workflowName" -ApiVersion "2019-05-01" -PropertyObject $updatedProperties -Force
针对标准型Logic App的IP白名单配置

标准型Logic App本质是基于App Service的,所以直接用App Service的IP限制命令就行:

  1. 获取当前Logic App的站点配置:
$resourceGroupName = "你的资源组名称"
$logicAppName = "你的标准型Logic App名称"

# 拉取站点配置信息
$webAppConfig = Get-AzWebApp -ResourceGroupName $resourceGroupName -Name $logicAppName | Select-Object -ExpandProperty SiteConfig
  1. 添加新的允许规则:
# 定义要加入白名单的IP或CIDR范围
$newAllowedIp = "10.0.0.0/8"

# 初始化IP安全规则数组(如果之前没设置过)
if (-not $webAppConfig.IpSecurityRestrictions) {
    $webAppConfig.IpSecurityRestrictions = @()
}

# 检查规则是否已存在,避免重复添加
$existingRule = $webAppConfig.IpSecurityRestrictions | Where-Object { $_.IpAddress -eq $newAllowedIp }
if (-not $existingRule) {
    # 构建新规则,优先级数值越小越优先,名称可以自定义
    $newRule = @{
        IpAddress = $newAllowedIp
        Action = "Allow"
        Priority = 100
        Name = "Allow Internal Network Access"
    }
    $webAppConfig.IpSecurityRestrictions += $newRule
}
  1. 提交配置更新:
# 推送更新到Azure
Set-AzWebApp -ResourceGroupName $resourceGroupName -Name $logicAppName -SiteConfig $webAppConfig

一些注意事项:

  • 消耗型Logic App要区分triggers和actions的IP限制,上面的示例只更新了triggers的规则,如果需要管控actions的访问,记得解开注释部分的代码。
  • 标准型的规则优先级很关键,确保你添加的允许规则优先级不会被更高优先级的拒绝规则覆盖。
  • 执行命令前,记得先通过Connect-AzAccount登录你的Azure账号,并且要有对应的资源权限(比如Logic App Contributor或Web App Contributor)。

内容的提问来源于stack exchange,提问作者S.K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:44:00