具有入站白名單 IP 的 AWS NLB
首先,我是 docker-compose 和 AWS 服務的新手,但我已經嘗試了解它並正確準備它,歡迎任何建議。
我需要使用 ECS 發布一個應用程序(這部分效果很好,我使用 docker-compose 來完成它。它使用彈性公共 ip 正確發布並且它可以工作)但是對應用程序的訪問必須受到允許的 IP 的限制。我的想法是使用公共 IP(分配給負載均衡器的彈性 IP)發布應用程序,並限制那裡的安全組訪問。
但是我可以將任何類型的安全組添加到負載均衡器,如果我修改了我的服務的安全組,它們就不起作用。
我的問題是,我可以將白名單 IP 分配給 NLB 嗎?我已經看到我可以像 ALB 中的白名單 IP 一樣,但它沒有分配彈性 IP。
您是否正在發布 Web 應用程序/API?如果是這樣,您可能應該使用應用程序負載平衡器而不是網路負載平衡器。NLB 通常用於非 http(s) 應用程序,您可以將它們與 http(s) 一起使用,但 ALB 往往更適合。
設計注意事項
我建議你考慮一下你是否真的需要一個靜態IP。一些遺留系統或嵌入式系統可能需要它,但大多數都可以使用 DNS 地址。如果您確實需要靜態 IP,您可以使用其中一種技術(或您在 Google 上找到的其他技術)為 ALB 提供靜態 IP,AWS Global Accelerator 會這樣做,但我不確定它是否適合您。您還必須考慮高可用性。
關於用於白名單的靜態 IP,您可以考慮使用與 ALB 集成的 AWS Cognito(最佳)或在您的容器內進行身份驗證。我們通常與 Azure AD 聯合,但您可以在 Cognito 中定義使用者/組。如果 Cognito 授權流量,使用者到 ALB 的流量只會到達目標容器/伺服器。
主要建議:AWS ALB 與 AWS Cognito 集成以進行身份驗證,如果您願意,可以在 ALB 周圍設置安全組,但不需要白名單。
原始問題
ALB 具有安全組。網路負載平衡器沒有。NLB 對流量是不可見的,因此您在資源(容器)周圍放置了一個安全組,而不是負載均衡器。
ALB IP 白名單選項:
- 您可以使用安全組將訪問 ALB 列入白名單,但不能使用安全組將訪問列入黑名單。有最大數量的規則,但每個 ALB 可能附加多個 SG - 但要小心,因為它會影響性能。如果您不想使用 Cognito,這是我給您的次要建議。
- 您可以使用網路訪問控制列表 (NACL) 將其列入白名單或黑名單
- 您可以使用本地防火牆在容器內執行某些操作,但我不建議這樣做
NLB IP 白名單選項:
- ECS 容器周圍的安全組
- 子網周圍的 NACL