Azure App Service通过publicNetworkAccess配置公网访问限制时,Bicep中对应门户中间选项的取值疑问
Azure App Service通过publicNetworkAccess配置公网访问限制时,Bicep中对应门户中间选项的取值疑问
嗨,我来帮你理清这个困惑~
其实你看到的门户中间那个“仅限允许的IP地址访问”选项,并不是靠publicNetworkAccess的特殊取值来实现的,官方文档里说这个字段只有Enabled和Disabled是对的,因为它只负责控制App Service的公网入口是否完全开放或关闭。
中间选项的核心逻辑是:保持公网入口开启,但通过IP白名单+默认拒绝规则来限制访问,具体到你的Bicep代码里要这么配置:
- 把
publicNetworkAccess设为'Enabled'——因为我们还是要允许指定IP通过公网访问,只是拒绝其他所有 - 配置
ipSecurityRestrictionsDefaultAction为'Deny'——设置默认行为是拒绝所有未匹配的IP - 在
ipSecurityRestrictions数组里添加你需要白名单的IP规则
给你补全后的代码示例:
resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = { name: 'the name' location: location kind: 'app' properties: { serverFarmId: appServicePlan.id httpsOnly: false publicNetworkAccess: 'Enabled' // 保持公网入口开启 ipSecurityRestrictionsDefaultAction: 'Deny' // 默认拒绝所有未被白名单的IP ipSecurityRestrictions: [ // 这里添加你的白名单IP规则,示例如下 { ipAddress: '192.168.1.1/32' action: 'Allow' priority: 100 name: 'Allow Office IP' } // 可以继续添加更多白名单规则 ] // 其他配置项... } }
简单总结下门户三个选项对应的Bicep配置逻辑:
- 允许所有访问:
publicNetworkAccess: 'Enabled'+ipSecurityRestrictionsDefaultAction: 'Allow'(默认就是Allow,不用额外设置) - 仅限允许的IP访问(中间选项):
publicNetworkAccess: 'Enabled'+ipSecurityRestrictionsDefaultAction: 'Deny'+ 配置白名单IP规则 - 拒绝所有访问:
publicNetworkAccess: 'Disabled'
这样配置后,就和你在门户里选中间选项的效果完全一致啦~
备注:内容来源于stack exchange,提问作者JP Hellemons




