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

Lambda绑定VPC后无法调用跨账户API Gateway端点

Lambda绑定VPC后调用跨账户API Gateway报403问题排查与解决

已知场景

  • Lambda未绑定VPC时,可正常调用跨账户的API Gateway(无自定义域名,调用地址:https://*******.execute-api.ap-south-1.amazonaws.com:443/abc)
  • 绑定VPC后:
    • 能正常访问https://google.com及其他外部URL,NAT网关、私有子网关联的安全组出站规则配置有效
    • 仅目标跨账户API Gateway调用返回403 Forbidden
    • Postman及非VPC环境下调用该API Gateway均正常

核心原因分析

问题核心是目标API Gateway的资源策略或访问配置限制了来自Lambda所在VPC的请求——即使NAT网关能正常访问其他外部地址,但目标API的访问控制规则未放行Lambda的出口IP或关联VPC。

排查与解决步骤

1. 检查目标API Gateway的资源策略

登录目标AWS账户的API Gateway控制台,查看目标API的资源策略:

  • 确认策略中是否包含允许Lambda出口IP(即NAT网关的公网IP)访问的规则
  • 若API Gateway配置了私有访问(仅允许VPC内访问),需确认策略是否允许当前Lambda所在VPC的CIDR范围或对应的VPC端点访问

示例允许特定NAT IP的资源策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:ap-south-1:目标账户ID:目标API ID/*/*/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": ["NAT网关公网IP/32"]
        }
      }
    }
  ]
}

2. 确认Lambda的出口IP

在Lambda中添加临时代码,调用外部IP查询接口获取当前执行环境的出口IP(即NAT网关的公网IP),确保该IP已被目标API Gateway的资源策略允许。

3. 检查API Gateway的访问类型

  • 若目标API Gateway设置为私有,需在Lambda所在VPC中创建API Gateway的VPC端点(接口类型),并确保目标API的资源策略允许该VPC端点的访问
  • 若API Gateway是公网类型,只需确保NAT网关的公网IP在资源策略的允许列表中即可

4. 验证IAM权限(若API使用IAM认证)

如果目标API Gateway启用了IAM认证,需确认:

  • Lambda执行角色拥有execute-api:Invoke权限,且资源范围包含目标API的ARN
  • 目标API Gateway的资源策略允许该Lambda角色的ARN访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:10:26