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

配置Private Endpoint后APIM访问KeyVault Secret报404排查

问题根源与缺失配置分析

当APIM处于VNet模式为None时,其管理平面(包括获取KeyVault Secret的操作)的出站流量默认走公网。你当前仅在Private Endpoint所在子网配置了Microsoft.KeyVault服务端点,该端点仅允许子网内资源通过VNet访问KeyVault,但APIM并未部署在该子网中,因此其公网请求会被KeyVault的网络规则拦截,返回404。

关键缺失配置(二选一即可)

方案1:允许APIM公网IP访问KeyVault

在KeyVault的网络防火墙规则中,添加APIM的公网出站IP地址到允许列表。你可以通过APIM门户页面或Terraform数据源获取该IP,示例Terraform配置如下:

resource "azurerm_key_vault" "your_keyvault" {
  # 保留现有KeyVault配置
  network_acls {
    default_action = "Deny"
    # 添加APIM的公网IP到允许列表
    ip_rules       = [azurerm_api_management.apim.public_ip_addresses[0]]
    # 保留原有的子网服务端点规则
    virtual_network_subnet_ids = [data.azurerm_subnet.pep.id]
  }
}

方案2:将APIM部署到VNet,让出站流量走服务端点

由于你使用的是Developer SKU,支持修改VNet模式。在APIM的Terraform配置中添加virtual_network_configuration块,将APIM部署到目标子网,使其出站流量通过VNet访问KeyVault:

resource "azurerm_api_management" "apim" {
  # 保留现有APIM配置
  virtual_network_configuration {
    subnet_id = data.azurerm_subnet.pep.id
    type      = "Internal" # 或根据需求选择"External"
  }
}

注意:修改VNet模式会触发APIM服务重启,需提前规划停机时间。

补充优化(可选)

当前Private Endpoint仅配置了Gateway子资源,仅覆盖APIM的数据平面(API请求)。若需要管理平面也通过Private Endpoint访问,需在private_service_connection中添加Management子资源:

private_service_connection {
  name                           = "apim_private_service_connection"
  private_connection_resource_id = azurerm_api_management.apim.id
  is_manual_connection           = false
  subresource_names              = ["Gateway", "Management"]
}

此配置仅影响管理平面的入站流量,出站访问KeyVault仍需依赖上述两种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:04:51