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

CodeBuild无法找到目标Internet Gateway的0.0.0.0/0路由问题求助

解决CodeBuild关联NAT Gateway子网却无法访问互联网/拉取CodeCommit源码的问题

我太懂这种明明配置了NAT Gateway却还是报错的挫败感了——之前帮朋友排查过几乎一模一样的问题,咱们一步步拆解可能的原因:

1. 先确认NAT Gateway本身能不能正常联网

NAT Gateway是"中间人",它自己得先能连上公网,才能给你的私有子网做转发:

  • 检查NAT Gateway的状态:必须是Available(可用)状态,要是显示Pending或者Failed,先解决NAT的部署问题。
  • 确认NAT Gateway部署在公有子网里(就是你说的前三个关联Internet Gateway的子网),而且这个公有子网的路由表必须有一条0.0.0.0/0指向Internet Gateway的路由——不然NAT自己都没网,怎么帮私有子网转发?

2. 检查私有子网(CodeBuild用的子网)的路由配置

别光看路由表的条目,要确认绑定关系和目标都对:

  • 确保你配置的那条0.0.0.0/0 → NAT Gateway的路由表,确实关联了CodeBuild用的这个私有子网。很多时候会犯的错是:路由表创建了,但没绑定到目标子网,或者绑错了子网。
  • 核对路由条目的目标:是NAT Gateway的ID(比如nat-xxxxxx),不是其他资源,也不能填IP地址。

3. 安全组和网络ACL的出站限制

CodeBuild要拉取CodeCommit源码,必须能发起HTTPS请求,这两个安全组件很容易卡流量:

  • CodeBuild环境的安全组:要允许**出站(Outbound)**的HTTPS(443端口)流量到0.0.0.0/0或者CodeCommit的服务IP段。
  • 子网的网络ACL(NACL):不仅要允许出站的443端口流量,还要允许对应的入站响应流量(Ephemeral端口,一般是1024-65535)——NACL是双向的,只放出站不放响应的话,请求发出去也收不到回复。

4. 关于CodeBuild的VPC验证警告

你看到的那个"无法找到对应目标Internet Gateway的0.0.0.0/0路由"的警告,其实是CodeBuild的验证工具逻辑问题:它默认检查的是直接指向Internet Gateway的路由,但你用的是NAT Gateway,所以这个警告可以忽略——真正的问题不是这个警告,而是你的网络链路确实不通。

5. 可选优化:用VPC端点访问CodeCommit

如果不想依赖NAT Gateway,推荐给你的VPC创建CodeCommit的VPC端点(类型是Interface端点),这样私有子网里的CodeBuild可以直接通过内网访问CodeCommit,不用走公网,既稳定又能节省NAT的带宽成本。创建端点后,确保路由表里添加了指向端点的CodeCommit服务IP段的路由即可。

最后再快速核对一遍

  1. NAT Gateway所在公有子网有正常的Internet Gateway路由,且NAT状态可用
  2. 私有子网绑定了指向NAT Gateway的0.0.0.0/0路由表
  3. 安全组和NACL允许HTTPS出站及响应流量
  4. CodeBuild的服务角色有codecommit:GitPull的权限(这个如果之前能拉取的话一般没问题,但可以确认一下)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:37:13