我正在考虑锁定现有的 AWS 设置。目前,所有内容都在单个默认 VPC(测试、暂存、生产)内,并且都在公共子网内。
我的计划是将 3 个环境分成 3 个不同的 VPC,利用公共和私有子网。
我们还想限制对服务器的访问,因为目前它们有公共 IP,任何人都可以访问它们。理想情况下,我只需进行 IP 白名单,但这是一个远程团队,他们在各地工作,所以我需要应对动态 IP。
我的计划是使用 OpenVPN 实例并让人们通过它进行连接。从我极其有限的理解(软件工程师背景,非常有限的网络经验)来看,这应该可行。
我的问题是,我们将有 3 个 VPC,VPN 实例需要位于其中一个中。我应该如何最好地允许通过 VPN 访问其他 2 个 VPC?这是最好的方法(直接访问),还是我应该每个 VPC 都有一个 VPN 连接。后者似乎有点过头了,但我不确定。
谢谢。
编辑:或者另一种选择是只使用一个 VPC,但使用子网隔离测试、暂存和生产?我读到有几个人这样做,尽管并不理想。
答案1
最好的选择是实际利用 AWS 已在其 VPC 设置中包含的 VPN。从已经设置您要执行的操作开始。假设让您的用户连接到中心位置(如办公室或数据中心)是一种选择。如果不是,那么下面设置的扩展版本将起作用,添加另一个 VPN 实例供人们连接。
如果您需要 VPC 之间相互通信,则需要设置多个 VPN 实例,每个 VPC 至少一个,最好设置多个以实现冗余,但要做到这一点,您需要另一个实例来控制故障转移并使用新路径更新 AWS 的路由表。
选项1:
一个中央 VPN 服务器,供用户在 AWS 中连接,并在其上创建隧道以将流量路由到您的其他 VPC。您需要在单独的 VPC 中创建其他实例来创建 VPN 隧道。
选项 2:
供用户在 AWS 中连接的中央 VPN 服务器。每个 VPC 设置一个或多个其他 VPN 实例,并设置隧道以连接到其他 VPC。
选项 3:
AWS VPN 功能适用于设置了用户 VPN 的中央办公室或数据中心。AWS 中设置了一个或多个 VPN 实例,并设置了隧道以在 VPC 之间建立连接。
不幸的是,亚马逊没有在 VPC 之间设置 VPN,因此在我建议使用隧道的情况下,您当然至少需要为每个隧道设置一组实例。
答案2
我确实认为答案可以在以下AWS
文档中找到:具有到整个 CIDR 块的路由的配置
按照此配置,我可以运行单个 VPN 实例
在与具有我的 vpn 盒的子网关联的路由表中添加对等连接的路由,方式与我想要访问的盒所在的对等 VPC 子网相同
我可以ssh
毫无问题地进入那些盒子
答案3
只要所有资源(EC2 实例和任何其他服务,如 ElasticSearch 等)都位于同一区域,您就可以使用 Transit Gateway 执行此操作。创建 3 个 VPC(您可能希望将它们放在单独的账户中并通过角色加入它们),然后创建一个 Transit Gateway。使用单独的 Transit Gateway 附件将 3 个 VPC 连接到 TG,然后将路由表附加到每个 TGA。创建一个 VPN(所有用户都连接到或已经在后面的单个路由器设备的客户网关;或一堆客户端 VPN 端点),然后使用 Transit Gateway 附件将该 VPN 也连接到 TG。然后只需确保所有路由都在 TG 路由表条目中,并为您的防火墙规则设置安全组。
请注意:如果您在多个地区(即 us-east1 和 us-west1)有资源,这似乎不起作用。我实际上在这里有一个问题,想看看这是否可行。它应该适用于对等连接,但似乎不行。