You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure App Service通过publicNetworkAccess配置公网访问限制时,Bicep中对应门户中间选项的取值疑问

Azure App Service通过publicNetworkAccess配置公网访问限制时,Bicep中对应门户中间选项的取值疑问

嗨,我来帮你理清这个困惑~

其实你看到的门户中间那个“仅限允许的IP地址访问”选项,并不是靠publicNetworkAccess的特殊取值来实现的,官方文档里说这个字段只有EnabledDisabled是对的,因为它只负责控制App Service的公网入口是否完全开放或关闭。

中间选项的核心逻辑是:保持公网入口开启,但通过IP白名单+默认拒绝规则来限制访问,具体到你的Bicep代码里要这么配置:

  1. publicNetworkAccess设为'Enabled'——因为我们还是要允许指定IP通过公网访问,只是拒绝其他所有
  2. 配置ipSecurityRestrictionsDefaultAction'Deny'——设置默认行为是拒绝所有未匹配的IP
  3. 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

火山引擎 最新活动