1

我花了大约一整天的时间试图解决这个问题,但到目前为止还没有运气。除了我目前的设置,我也愿意接受其他建议。

我在 VPC 中有一个 RDS 实例。我正在尝试使 CodeBuild 能够访问此 RDS 实例以进行测试步骤。

目前,我为 CodeBuild 服务设置了一个 VPC 终端节点,其中包含 VPC 的所有 3 个子网。我知道,如果我允许 RDS 上的安全组的所有入站流量,它就可以工作。不过,我不想允许所有入站流量 - 鉴于此,没有成功。

我尝试了以下方法无济于事:

  • 获取 VPCE 创建的 ENI 的私有 IPv4,将它们作为入站规则添加到 RDS 上的安全组
  • 为 CodeBuild 创建一个单独的 VPC,并设置 VPC 对等(这似乎过于复杂,而且我不确定对等是否会允许 CodeBuild 流量到达 RDS;这也使 CodeDeploy 的事情变得复杂)。
  • 将 CodeBuild 放入 RDS 实例的 VPC。执行此操作时,我在 VPC 中创建了一个新子网,将其分配给路由表中的 NAT(并且此 NAT 在 RDS 实例的 VPC 上);put CodeBuild 一直告诉我它无法访问互联网。
4

2 回答 2

1

为 CodeBuild 服务设置 VPC 终端节点,

VPC 终端节点不用于从 CB 到 VPC 的入站流量。它们用于您在 VPC 中的应用程序在没有 Internet 的情况下与 CB 服务进行交互。

将 CodeBuild 放入 RDS 实例的 VPC。

这是正确的方法。遗憾的是,您没有提供 VPC、子实体、NAT、路由表、安全组、NACL 设置的任何详细信息,因此很难推测它为什么不起作用。

于 2021-08-12T01:20:53.853 回答
0

感谢 Marcin 为我指明了在同一个 VPC 中制作 CodeBuild 的正确方向。当我能够专注于此时,我又看到了这篇文章:

CodeBuild 找不到目标 Internet 网关的 0.0.0.0/0 目的地

我有同样的问题;我的 NAT 也在私有子网上。现在,它位于公共子网上,并且可以正常工作。

于 2021-08-12T02:47:37.080 回答