通過 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。
假設您指的是通過基於 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 服務相比,管理起來可能更複雜。