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

使用Bicep部署Azure Key Vault:是否需允许Azure服务绕过防火墙?

问题描述

我使用以下Bicep模板部署Azure Key Vault,网络配置要求防火墙仅允许指定子网和IP范围的连接:

resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
  name: vaultName
  location: location
  properties: {
    tenantId: subscription().tenantId
    enableRbacAuthorization: true
    publicNetworkAccess: null
    enabledForDeployment: false
    enabledForDiskEncryption: false
    enabledForTemplateDeployment: false
    enableSoftDelete: true
    softDeleteRetentionInDays: 30
    sku: {
      name: 'standard'
      family: 'A'
    }
    networkAcls: {
      defaultAction: 'Deny'
      bypass: 'None'
      ipRules: [for ip in allowIps: { value:ip }]
      virtualNetworkRules: [
        {
          id: allowSubnet
        }
      ]
    }
  }
}

resource key 'Microsoft.KeyVault/vaults/keys@2023-07-01' = {
  parent: kv
  name: guid(vaultName, 'ssh-key')
  properties: {
    keySize: 4096
    keyOps: [
      'encrypt'
      'decrypt'
    ]
    kty: 'RSA'
    rotationPolicy: {
      lifetimeActions: [
        {
          trigger: {
            timeBeforeExpiry: 'P30D'
          }
          action: {
            type: 'notify'
          }
        }
        {
          trigger: {
            timeBeforeExpiry: 'P7D'
          }
          action: {
            type: 'rotate'
          }
        }
      ]
      attributes: {
        expiryTime: 'P1Y10D'
      }
    }
  }
}

部署时触发错误:因bypass设为None,来自西欧Azure数据中心IP 20.61.103.227的KeyVault/ManagementPlane请求被防火墙拒绝。将bypass设置为'AzureServices'后部署成功,但有两个疑问:

  1. 是否必须允许可信Azure服务绕过防火墙?此配置是否安全?
  2. 我已通过VPN连接到白名单IP范围,为何仍无法正常部署?
解答

关于bypass: 'AzureServices'的必要性与安全性

  • 必要性:是的,在通过ARM/Bicep部署Key Vault并同时创建密钥这类关联资源时,Azure管理平面(比如资源提供服务)需要向Key Vault发起请求来完成资源创建。当你设置defaultAction: 'Deny'且bypass: 'None'时,这些管理平面的请求会被防火墙拦截,导致部署失败。除非你能精准将所有Azure管理平面的IP加入白名单(但这类IP范围动态变化,不现实),否则必须设置bypass: 'AzureServices'才能完成这类关联资源的部署操作。
  • 安全性:AzureServices仅允许微软可信的第一方服务绕过防火墙,并非所有Azure服务都能访问。这些服务经过微软严格管控,且结合你已启用的enableRbacAuthorization: true,即使服务能绕过防火墙,仍需通过RBAC权限验证才能操作Key Vault,安全性有保障。如果担心过度开放,可在部署完成后,临时将bypass改回None——但后续若通过管理平面操作Key Vault(比如修改密钥策略、轮换配置),可能再次遇到拦截,需临时改回AzureServices。

VPN连接白名单IP仍无法部署的原因

  • 部署请求的源IP问题:通过Bicep/ARM部署时,请求并非来自你的VPN客户端IP,而是来自Azure资源管理器(ARM)的服务IP(也就是报错里的20.61.103.227这类地址)。你的VPN连接仅让你能访问Key Vault的数据平面(比如读取密钥),但管理平面的部署请求是由ARM服务发起的,不会走你的VPN通道,所以即使你的VPN IP在白名单里,也无法解决部署时的管理平面请求拦截问题。
  • 额外验证点:如果部署完成后,你通过VPN访问Key Vault仍有问题,需检查:
    • VPN连接是否正确路由到Key Vault所在的虚拟网络或白名单IP范围
    • 子网的网络安全组(NSG)是否允许Key Vault的端口(443)流量
    • 你的客户端IP是否确实在allowIps列表中(可通过curl ifconfig.me确认当前出口IP)

内容的提问来源于stack exchange,提问作者baouss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:18:42