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

VPC内Lambda通过VPC端点无法访问API Gateway API Key问题

解决VPC内Lambda无需NAT访问API Gateway获取API Key的超时问题

针对你遇到的VPC公有子网中Lambda访问API Gateway超时的问题,以下是无需NAT Gateway的具体修复步骤:

1. 启用VPC端点的私有DNS名称

你创建的*.execute-api VPC端点如果未开启私有DNS,Lambda会尝试解析API Gateway的公网域名,导致流量走公网超时。

  • 操作步骤:进入VPC控制台 → 找到目标execute-api端点 → 编辑DNS设置 → 勾选「启用私有DNS名称」。
  • 说明:开启后,Route 53会自动将API Gateway的域名解析到VPC端点的弹性网络接口(ENI),确保流量在VPC内部流转。

2. 补充Lambda安全组的出站规则

你仅配置了安全组的入站规则,但Lambda主动发起请求需要出站权限:

  • 给Lambda关联的安全组添加出站规则:允许HTTPS(TCP 443)流量,目标选择VPC端点的安全组,或者直接指定VPC的CIDR范围。
  • 注意:入站规则是允许外部访问Lambda,而出站规则才是Lambda对外发起请求的权限,这是最容易遗漏的配置。

3. 确认API Gateway的端点类型为「区域型」

如果你的API Gateway是边缘优化型,即使配置了VPC端点也无法通过私有网络访问,因为边缘优化型流量会先经过CloudFront全球节点:

  • 操作步骤:进入API Gateway控制台 → 选择目标API → 「设置」标签页 → 查看「端点类型」,确保是「区域」。
  • 若当前是边缘优化型,可修改端点类型(修改后会更换API的域名,需同步更新Lambda中的调用地址),或重新创建区域型API。

4. 验证子网路由表配置

确保公有子网的路由表中存在指向VPC端点的路由:

  • 检查路由表:确认有一条目标为pl-xxxx(execute-api服务的前缀列表)的路由,下一跳为你的VPC端点ID。
  • 说明:启用私有DNS后,路由表会自动生成这条路由,但如果之前手动修改过路由表,可能需要重新确认。

5. 精简Lambda权限(可选)

你当前给Lambda角色配置的权限过于宽泛,建议仅保留必要的API Key读取权限,避免过度授权:
创建自定义权限策略并附加到Lambda角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "apigateway:getApiKey",
        "apigateway:getApiKeys"
      ],
      "Resource": "arn:aws:apigateway:${你的区域}::/apikeys/*"
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:18:32