透過單一 VPN 連線連接到多個 AWS VPC

透過單一 VPN 連線連接到多個 AWS VPC

我正在考慮鎖定現有的 AWS 設定。目前,所有內容都位於單一預設 VPC 內(測試、登台、生產)且全部位於公共子網路內。

我的計劃是利用公有和私有子網路將 3 個環境分成 3 個不同的 VPC。

我們還希望限制對伺服器的訪問,因為目前它們具有公共 IP,任何人都可以訪問它們。理想情況下,我只需要進行 IP 白名單,但這是一個遠端團隊,他們在各地工作,因此我需要處理動態 IP。

我的計劃是使用 OpenVPN 實例並讓人們透過它進行連線。從我極其有限的理解(軟體工程師背景,非常有限的網路經驗)來看,這應該可行。

我的問題是,我們將有 3 個 VPC,VPN 實例需要位於其中之一。我應該如何最好地允許透過 VPN 存取其他 2 個 VPC?這是最好的方法(直接存取),還是我應該為每個 VPC 有一個 VPN 連線。後者似乎太過分了,但我不確定。

謝謝。

編輯:或者另一個選擇是只有一個 VPC,但使用子網路隔離測試、暫存和生產?我讀到有些人這樣做,儘管並不理想。

答案1

最佳選擇是實際利用 AWS 已包含在其 VPC 設定中的 VPN。從已經設定好你想做的事情開始說起。假設您的使用者可以選擇連接到一個中心位置,例如辦公室或資料中心。如果不是,那麼下面的設定的擴展版本就可以工作,添加另一個 VPN 實例供人們連接。

如果您還需要 VPC 相互通信,則需要設定多個 VPN 實例,每個 VPC 至少一個,最好是多個 VPN 實例以實現冗餘,但要做到這一點,您需要另一個實例來控制故障轉移並使用新路徑更新AWS 的路由表。

選項1:

供使用者連接到 AWS 的中央 VPN 伺服器,並在其上建立隧道以將流量路由到您的其他 VPC。您需要單獨的 VPC 中的其他執行個體來建立 VPN 隧道。

選項2:

供使用者連接到 AWS 中的中央 VPN 伺服器。每個 VPC 的一個或多個其他 VPN 實例設定有用於連接到其他 VPC 的隧道。

選項 3:

AWS VPN 功能連接到設定了使用者 VPN 的中央辦公室或資料中心。 AWS 中的一個或多個 VPN 實例,為 VPC 之間的連線設定了隧道。

遺憾的是,Amazon 沒有在 VPC 之間設定 VPN,因此在我建議使用隧道的情況下,您當然至少需要為每個隧道設定提供一組實例。

答案2

我實際上認為答案可以在這個AWS文檔中找到:具有到整個 CIDR 區塊的路由的配置

按照此配置,我能夠運行一個 VPN 實例

在與具有我的 VPN 盒子的子網路關聯的路由表中新增對等連接的路由,在我要存取的盒子所在的對等 VPC 子網路上採用相同的方式

我能夠ssh毫無問題地進入那些盒子

答案3

只要所有資源(EC2 執行個體和任何其他服務,如 ElasticSearch 等)都位於同一區域,您就可以使用 Transit Gateway 來執行此操作。建立 3 個 VPC(您可能想要將它們放在單獨的帳戶中並透過角色加入它們),然後建立一個 Transit Gateway。使用單獨的中轉網關附件將 3 個 VPC 連接到 TG,然後將路由表附加到每個 TGA。建立一個 VPN(所有使用者連接到/已經位於其後面的單一路由器裝置的客戶網關;或一堆客戶端 VPN 端點),然後使用中轉網關附件將該 VPN 附加到 TG。然後只需確保所有路由都在 TG 路由表條目中,並為防火牆規則設定安全群組。

請注意:如果您在多個區域(即 us-east1 和 us-west1)擁有資源,這似乎不起作用。我實際上在這裡有一個問題,看看是否可能。它應該與對等互連一起工作,但似乎不行。

相關內容