Amazon-Web-Services

通過 VPN 隧道從 VPC 中的 AWS Lambda 函式或服務連接到客戶的私有網路

  • September 2, 2018

我們目前正在 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 服務相比,管理起來可能更複雜。

引用自:https://serverfault.com/questions/929058