无法通过具有 VPC 对等互连的中间账户访问 AWS 环境中的 EC2 实例

问题描述 投票:0回答:1

描述:

我在从位于“staging”AWS 帐户中的 Jenkins 代理访问 Nexus 服务器时遇到困难,该服务器托管在内部 ALB 后面的“prod”AWS 帐户中。 “prod”和“staging”账户都与“admin”AWS 账户建立了 VPC 对等连接,充当中介。

设置详情:

  • 三个 AWS 账户:“admin”、“prod”和“staging”。
  • “prod”和“admin”帐户之间以及“staging”和“admin”帐户之间建立了 VPC 对等互连。
  • Nexus 服务器驻留在“prod”帐户内的私有子网中,可通过内部 ALB 访问。
  • Jenkins 代理位于“临时”帐户中,需要访问 Nexus 服务器,并通过 NAT 网关促进出站互联网访问。

问题:

当尝试从 Jenkins 代理访问 Nexus 服务器(nexus.company.com)下载工件时,甚至通过 Traceroute 命令,数据包无法到达目的地。沿路径没有中间跃点响应。

采取的行动:

  • 确认每对账户之间已成功建立 VPC 对等连接。
  • 已验证“staging”帐户中的 Jenkins 代理可以与“admin”帐户中的资源进行通信。
  • 确保 Nexus 服务器正常运行并响应“admin”和“prod”帐户中其他资源的请求。

我寻求帮助来识别和解决阻止 Jenkins 代理与 Nexus 服务器之间通信的问题。此外,如果您能深入了解 VPC 对等连接和路由表的正确配置,我们将不胜感激。

networking amazon-vpc aws-vpc-peering aws-networking
1个回答
0
投票

正如 @erik258 提到的,VPC 不支持传递对等互连。请注意,以下解决方法是根据您现有的设置提供的,即 prod <--peer--> admin <--peer--> staging

可能的解决方法(假设由于某种原因您无法对等生产和暂存):

  1. 最简单但不安全的选择是通过 IGW,因为您已经在暂存中拥有 NAT-GW,在产品中部署面向互联网的 ALB/NLB 并分别针对您的 nexus 服务器/InternalALB 并调整 NACL/SG
  2. 使用AWS PrivateLink:(我尝试过,它确实有效)
  • 使用内部 NLB 在 prod VPC 中设置端点服务,并将目标作为现有的内部 ALB。
  • 使用上述步骤中创建的服务在 admin VPC 中创建接口端点。
  • 现在使用在上述步骤中创建的接口端点的 IP 地址从 Staging VPC Jenkins
  • 连接到 nexus
  • 确保您在 NACL/SG 上有必要的入站和出站规则,并且由于我们为此使用专用链接,因此无需担心路由表
  • 如果您想使用接口终端节点 DNS 进行连接,请确保管理员上的 VPC 对等连接上的 DNS 设置而不是 IP 地址<--> 已启用分段
  1. 使用 VPC Lattice - 我还没有尝试过此选项,但它或多或少使用了 AWS PrivateLink 的概念,因此您也可以尝试此操作并让我们知道结果。

希望得到答复,谢谢!!

© www.soinside.com 2019 - 2024. All rights reserved.