CodeBuild无法找到目标互联网网关的0.0.0.0/0目的地。

13
我已经苦苦挣扎了数小时。我创建了一个VPC和四个不同的子网,前三个子网连接到常规Internet Gateway,最后一个子网连接到一个NAT Gateway(目标为0.0.0.0/0)。我的CodeBuild项目设置为使用此VPC和最后一个子网。
当我在CodeBuild项目环境中点击“验证VPC设置”时,出现以下警告消息:
“ID为*的VPC可能没有互联网连接。CodeBuild无法找到目标Internet Gateway的子网ID为*,其中包含0.0.0.0/0。”
如果我尝试运行CodeBuild项目,它将超时,因为它没有互联网访问权限,无法从CodeCommit下载源代码...
我错过了什么?我的子网的路由表连接到了NAT网关,目的地是0.0.0.0/0,所以上面的错误消息对我来说毫无意义。
谢谢!

你是否正确设置了安全入站/出站规则?请参考以下链接:https://docs.amazonaws.cn/en_us/vpc/latest/userguide/VPC_Scenario2.html - BadPiggie
谢谢,Banujan。是的,我试过了,但结果还是一样的 :( - Marian Busoi
2个回答

23

所以,如果有其他人遇到相同的问题,原因是我错误地将我的NAT网关放在私有子网上而不是公共子网上。


1
请问您能否进一步详细说明一下,可能附上一些SG和NAT网关以及您的设置的截图来回答我的问题?您在这里有一个受欢迎的问题和答案,但我仍然无法复制它。谢谢! - Tommy
我的理解是,为了从私有子网进行正确的互联网路由,您还需要至少一个公共子网,并且私有子网使用的NAT网关需要放置在公共子网中。 - Alexander Fortin

0

我曾经遇到过同样的问题,以下是我应用的解决方法:

  1. 是的,我也将私有子网映射到了 NAT 网关上。所以,第一步修正是将公共子网映射。
  2. 创建一个“互联网网关”并将其附加到创建的 VPC 上。
  3. 导航到创建的 VPC,并确保它已映射默认主路由表。
  4. 单击默认映射路由表,并从步骤2中创建的“互联网网关”中附加它。不要映射任何子网。
  5. 导航到路由表,选择私有路由表,并映射创建的 NAT 网关和私有子网。
  6. 导航到 Code Build,选择创建的 VPC、私有子网和安全组,最后单击“验证 VPC 设置”。

注意:两个路由表必须附加到同一个 VPC。

实际输出:我收到了消息“具有 ID {{vpc-xyz}} 的 VPC 具有互联网连接”。

以下是一份有助于尝试上述步骤的参考资料:https://aws.amazon.com/premiumsupport/knowledge-center/ec2-internet-connectivity/

希望这能有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接