簡體   English   中英

AWS 網絡負載均衡器 SSL 直通

[英]AWS Network Load Balancer SSL passthrough

我正在嘗試確保客戶端和我的后端服務器之間的完整 e2e 連接。 這就是我當前的基礎架構的樣子:

  1. Fargate 集群,我的后端應用程序放置在私有子網中。
  2. 它們前面是內部網絡負載均衡器,它也不暴露給外界。
  3. REST API 網關與我的內部 NLB 的 VPC 鏈接集成。

目前,我的 NLB 在端口 443 上使用 TLS 偵聽器並附加了證書,但正在終止 TLS 並通過端口 80 上的 TCP 與目標組進行通信。我的計划是也在我的 Fargate 節點上配置 TLS 和證書。 目前我缺乏對以下設置如何工作的理解。 它是要將加密流量從我的客戶端發送到后端應用程序,還是在 NLB 執行解密並在將流量發送到 Fargate 節點之前再加密一次?

我已經了解到閱讀許多博客,可以使用 NLB 實現直通行為,而無需解密/加密 NLB 上的流量,但沒有找到任何示例,AWS 文檔也不清楚這個主題。

是否可以將證書僅應用於我的后端應用程序並僅在那里進行解密? 我的理解是,我可能看起來類似於以下內容:

  1. 在我的 Fargate 應用端配置的證書和 TLS
  2. NLB 在端口 443 上帶有 TCP 偵聽器,在 NLB 級別上未應用任何證書。 因此 NLB 只會將加密流量從我的客戶端傳遞到后端。

有沒有人嘗試過建立類似的基礎設施並且對如何配置有一些了解?

問候。

我相信你的假設是正確的,Jarek。 您還需要在 443 上使用 TCP 偵聽器和 TCP TargetGroup 創建 NLB。 您部署的 ECS 容器(Fargate 或其他)將是接收 TLS 請求、執行握手協商等的容器。您的 NLB 偵聽器實際上是 TCP 直通(如果您將在端口 443 上),並且 ECS 容器執行實際的 TLC工作。 對於 ECS 容器,您可能希望使用 SecretsManager 來存儲您的證書、密鑰和鏈。

如果您還需要客戶端證書驗證 (mTLS),您還需要存儲客戶端證書驗證可能需要的任何其他鏈。

執行此 NLB 設置的缺點是您失去了 NLB TLS 偵聽器的一些功能,例如它可以強制執行的 TLS 協議限制。 您可以自己在 ECS 容器上執行此操作,但容器確實變得更加復雜。

需要注意的一個警告是 TargetGroup 可以執行的“保留客戶端 IP”功能會破壞您的目標組。 還沒有想辦法解決這個問題。 到目前為止,還無法使用此設置進行此操作。

此外,我懷疑有一種方法可以創建一個與啟用了 TLS 的 ECS 容器的 TLS TargetGroup 匹配的 TLS 偵聽器,但對我來說,這似乎是多余的並且難以正確配置,因為解密會在 NLB 發生,然后它會重新加密TLS 目標組和 ECS 容器。 如果有的話,我不確定它是如何工作的。 我的理解是 AWS ELBv2 ALB 和 NLB 沒有驗證它們背后的任何 TLS 證書(需要參考)。 不過,我個人還無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM