通过 VPN 隧道从 VPC 内的 AWS Lambda 函数或服务连接到客户的私有网络

通过 VPN 隧道从 VPC 内的 AWS Lambda 函数或服务连接到客户的私有网络

我们目前正在 VPC 内运行 AWS Lambda 函数,例如,已经设置了与 MongoDB Atlas 的对等连接,以便 VPC 内的 AWS Lambda 与我们 MongoDB Atlas 托管的数据库进行通信。

现在出现了一个要求,即我们通过 AWS Lambda 触发的 VPC 内的特定服务也在同一 VPC 内运行,该服务必须通过 VPN 访问本地网络功能/主机。此外,该网络需要能够响应发送到该服务的消息,因此我认为需要站点到站点的连接。

客户向我们提供了 IKE 第一阶段参数、IKE 第二阶段参数(IPSEC)、他们的本地对等 IP 地址、接受的 VPN 通信端口和本地加密域。

他们现在正在询问我们的远程对等 IP 地址和远程加密域。

问题 1:我们尝试在 VPC 中的 AWS 上实现的目标是否可行(我读到了关于此问题的相互矛盾的帖子。

问题2:我是否正确地假设隧道启动必须从客户端进行,然后我们使用网络监控轮询来保持隧道处于活动状态?

答案1

关于问题1。

假设您指的是通过基于 IPSec 的 VPN 连接以安全地连接到 AWS 之外的资源的能力。答案是肯定的。但是,AWS 的本机实现确实有一些限制。首先是无法指定第 1 阶段或第 2 阶段配置设置的任何方面。相反,AWS 为您提供了下载一系列制造商的预配置设置的能力,但也提供了一些很好的通用示例。

一些好的资源是:

AWS 托管 VPN 连接- 提供有关 AWS VPN 网关服务的详细信息

您的客户门户- 提供 AWS 之外的设备所需设置的信息

关于问题2。

确实如此,如果隧道因某种原因断开,AWS 端将无法启动它(如果你问我,这是一个非常烦人的限制)。但是有办法解决这个问题。有些设备支持发送保持活动数据包以保持隧道畅通。例如,Cisco ASA 可以利用 IP SLA 功能通过隧道发送 SLA 消息以保持隧道畅通。摘自示例 ASA 配置

为了使隧道保持活动状态或始终处于运行状态,ASA 需要将流量发送到 acl-amzn 中定义的子网。可以配置 SLA 监控以将 ping 发送到子网中的目标,并使隧道保持活动状态。此流量需要发送到将返回响应的目标。可以通过从 ASA 从外部接口向目标发送 ping 来手动测试这一点。ping 的可能目标是 VPC 内的实例。为了实现冗余,可以将多个 SLA 监控器配置到多个实例,以防止单点故障。

或者您可以简单地安排一侧的系统定期发送 ping - 通过 cron 作业或计划任务。

但是,另一种选择是将您自己的 IPSec 网关部署到 AWS - 可以在实例本身上运行,也可以在另一个实例上运行,然后您可以更新子网上的路由表以通过此实例路由到 AWS 外的子网。这使您可以更好地控制 IPSec 设置和行为 - 但与本机 AWS 服务相比,管理起来可能更复杂。

相关内容