1

我們在我們的EC2集羣前使用AWS API網關和負載均衡器。網關需要負載均衡器公共託管,這就是爲什麼我們將負載均衡器置於VPC的公共子網中,並將所有EC2實例置於私有VPC中。AWS API網關和負載均衡器安全通信

我們面臨的問題是,作爲我們的負載均衡器在公共VPC中,我們如何使我們的請求無效,而不是來自我們的API網關。我們只想通過負載均衡器向EC2實例傳遞請求,當且僅當它通過我們的API網關傳遞時。

當我探索可能的解決方案時,有人建議使用來自網關的公共客戶端證書來驗證您的請求。我能夠從網關獲取該公共證書,但沒有找到任何方式在負載平衡器中對其進行配置。

回答

0

您無法在負載平衡器級別驗證客戶端證書。您需要在容器級別驗證它。

還有一種方法可以保持負載均衡器的私密性,並使用Lambda函數(放置在VPC中)代理負載均衡器,您可以在其中驗證客戶端證書。

+0

感謝您的輸入,我已經探索過lambda的方式,但我不想因爲它會添加另一跳到系統。與其他網關相比,我對AWS API網關提供給我的功能相當混淆:Kong。 –

+0

你有什麼想法,lambda方法的性能會怎樣? –

+0

性能取決於Lambda的內存分配以及是否冷啓動。因此,假設您避免冷啓動,這將是合理的,但如果您可以對您的有效載荷執行負載測試以查看延遲時間,那將會更好 – Ashan

0

在進一步分析中,我遇到了以下關於AWS API網關方法的問題。

  1. 當lambda容器沒有重用或者很冷時,VPC對lambda容器初始化時間有很大的影響。根據其他經驗,可能需要10到15秒,並且可能會延遲響應時間。即使它是一個熱門的lambda,當您從中訪問VPC時,時間延遲成本也會相關聯。
  2. Lambda需要足夠數量的ENI和私有IP範圍來支持並行執行。這意味着如果在運行時,負載增加,並且如果沒有任何ENI空閒,請求將失敗。我們不確定是否可以根據請求負載在運行時動態增加ENI。
  3. 如果由於ENI不可用而導致任何錯誤或超時,AWS不會爲其創建任何日誌,並且您可能會對錯誤來源毫無頭緒。