Domain-Name-System

基於 IP 的 Elastic Load Balancer 白名單

  • February 6, 2015

我通過ELB在埠 80 上提供 HTTP 流量。短時間內,越來越多的客戶問我我們的 IP 地址是什麼(以收集數據)。顯然他們無法將 ELB 的 DNS 列入白名單,只能將 IP 地址列入白名單(“您的 IP 地址一直在變化,我們該如何應對! ”)。

我能想到的一種解決方案是跟踪我的 ELB 的 IP 地址池,並將伺服器上的一些文件列出給客戶端?也許這很麻煩,但我很難找到有關這方面經驗的資訊或文章,儘管我無法想像這是一種罕見的情況。

是否有任何通用方法可以向人們提供我的 ELB 使用的 IP 地址池?或者這很荒謬,他們只需要使用一些可以將 DNS 地址列入白名單的解決方案?

是否有任何通用方法可以向人們提供我的 ELB 使用的 IP 地址池?

是的,ELB 是基於 EC2 建構的,AWS 會發布特定區域使用的所有公共 IP 範圍的列表。可以安全地假設您的 ELB 可以使用的每個 IP 都在其區域的已發布範圍內。

這些 IP 範圍如有更改,恕不另行通知,但 AWS 以 JSON 格式維護目前列表,可用於自動維護白名單。

另一方面,這有點多餘,因為 DNS 的重點是提供與主機名關聯的目前 IP 列表。

或者這很荒謬,他們只需要使用一些可以將 DNS 地址列入白名單的解決方案?

他們不能將主機名列入白名單並不是完全荒謬的,因為任何支持該解決方案的防火牆解決方案都必須在執行時將 DNS 主機名解析為 IP,然後尊重 TTL 以使該列表保持最新,或者在第 7 層並檢查主機 HTTP 標頭欄位。

有點不尋常的是,他們希望將出站連接列入白名單,更常見的是希望將入站連接列入白名單(例如當您嘗試訪問他們的 API 時),在這種情況下,您可以分配您背後的實例ELB 是 EIP,因此當您的應用程序伺服器啟動出站連接時,它們具有靜態 IP(儘管這樣做可能會妨礙自動擴展)。

一般而言,ELB 並不打算成為所有人的靈丹妙藥,它會做出妥協,以犧牲少數潛在使用者的利益為 90% 的案例帶來顯著的好處(例如透明擴展)。如果您的負載均衡器確實需要一個靜態 IP,那麼OpsWorks 使編排 HAProxy幾乎同樣容易。

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