在使用公有雲平臺的服務時,有時候為了安全、合規地處理某些敏感性資料,我們可能需要為Web應用程式和資料庫建立一個安全的雲基礎設施。為此可以在VPC中構建NAT閘道,從而讓私有子網中的實例能夠訪問互聯網以便進行更新和調用API,但同時阻止入站流量。
這種解決方案能為私密實例提供互聯網訪問途徑,而不會將它們直接暴露在公共互聯網上,從而增強了安全性。本文將介紹具體做法。
上圖展示了一種典型的VPC設置,其中分為三個主要部分:VPC、公共子網(Public subnet)和專用子網(Private subnet)。首先是綠色外框,即VPC,它能將自己所容納的資源與其他網路隔離開來。用戶可以使用通過1:1 NAT分配的靜態IP位址,經由公共互聯網訪問Web伺服器。Web伺服器處理請求,並在必要時與資料庫伺服器通信。Web伺服器通過路由伺服器與資料庫伺服器通信。路由伺服器使用自訂NAT在公共子網和私有子網之間安全地路由流量。位於專用子網的資料庫伺服器通過VLAN接收來自Web伺服器的請求。專用子網的隔離功能確保了資料庫伺服器不會直接暴露在互聯網上,從而提高了安全性。
下文我們將將介紹建立上述架構的步驟,進而就可以在專用子網和公共子網之間安全高效地通信。具體來說,我們將創建一個包含公共子網和專用子網的VPC,配置NAT閘道,並設置VLAN。
在下文中,我們會在VPC中創建一個NAT閘道,類似上圖所示。如果你已經有Linode帳戶,可以直接從步驟1開始進行。如果還沒有Linode帳戶,可以點擊這裡註冊並獲得100美元的免費額度,這些額度足以完成本文的實驗。隨後我們將通過Linode控制台創建一個包含兩個子網的VPC:一個公共子網和一個專用子網。在專用子網中,我們將添加一個資料庫;在公共子網中,則會添加2個實例:一個用作Web伺服器,另一個用作路由伺服器(自訂NAT)。
在VPC中建立NAT閘道的第一步是創建VPC,進而從邏輯上隔離資源。回想一下,其實VPC就是我們在上圖中看到的綠色框。專用子網和公共子網都位於此VPC中。
為此,請在Linode Cloud Manager中點擊左側窗格中的VPC,隨後點擊Create VPC。
接下來,我們需要在VPC中添加一個公共子網,該子網用於容納路由伺服器(自訂NAT)和Web伺服器,也就是架構圖中的藍色方塊。
在頁面底部的Subnets一欄為公共子網添加一個標籤。該子網將承載路由伺服器(自訂NAT)和Web伺服器。
隨後點擊Create VPC開始配置該VPC。
等待片刻即可看到這個創建好的子網,及其子網ID和IP範圍。
接下來需要在公共子網中部署2個Linode實例。其中一個實例將作為路由伺服器(自訂NAT),負責處理NAT操作,以管理公共子網和專用子網間的流量;另一個實例將充當Web伺服器,處理從互聯網傳入的流量,並將必要的請求轉發到專用子網。
首先,我們將創建路由伺服器。在Cloud Manager中,點擊左側面板上的Linodes,然後點擊Create Linode。選擇與創建VPC時相同的區域,然後選擇Dedicated 8 GB CPU選項。
然後向下滾動頁面,並分配在步驟1中創建的VPC,然後從下拉式功能表中選擇公共子網。
按一下Create Linode完成實例配置操作。
接下來需要再次執行上述操作創建Web伺服器。按一下Create Linode,選擇為VPC所選的區域,然後將VPC分配給此實例。接下來可以看到,Web伺服器和路由伺服器都位於VPC的公共子網中。
接著需要在VPC中創建承載資料庫伺服器的專用子網,該伺服器將無法直接訪問公共互聯網。也就是說,現在所創建的是紫色方框中的內容。
在VPC中點擊Create Subnet,然後輸入標籤並分配專用IP範圍。這個子網可以讓我們的資料庫安全地躲避任何外部威脅。
接下來,讓我們在專用子網中部署一個Linode實例作為資料庫伺服器。該實例只能通過安全VLAN從公共子網訪問。請在Linode Cloud Manager的左側窗格中按一下Databases,然後按一下Create Database Cluster。輸入標籤,然後選擇需要的資料庫引擎。
請注意:該資料庫不能像其他伺服器一樣直接訪問公共互聯網。在頁面底部的Add Access Controls選項中,我們可以為上面創建的專用子網添加允許訪問的IP位址範圍。
隨後點擊Create Database Cluster。請注意,資料庫的配置工作可能需要最多30分鐘。
接下來需要建立一個VLAN,以便在公共子網和專用子網間安全地通信。
這可以確保Web伺服器和資料庫伺服器之間的流量保持私密和安全。在路由伺服器上按一下Configurations選項卡,然後按一下Edit。
向下滾動到Networking選項。按一下所需網路介面對應的下拉式功能表,選擇VLAN。通常情況下,為計算實例添加第1或第2個VLAN時會分別使用eth1或eth2為名,因為實例的eth0網路介面通常會被配置為訪問公共互聯網。
所選介面旁邊會出現一個二級功能表,用於輸入VLAN的標籤和要使用的IP位址。
按一下Create or select a VLAN選項對應的預留位置文字,然後輸入VLAN名稱。接著點擊Save Changes。接下來我們將看到配置選項卡下列出的所有網路介面。
接下來可以測試連線性,以驗證路由伺服器是否正確處理了NAT操作。我們還需要確保Web伺服器能通過VLAN與資料庫伺服器通信,並且資料庫伺服器不會直接暴露在互聯網上。
訪問我們創建的第一個路由伺服器,並啟動LISH控制台。然後使用IP位址ping資料庫的私人網路絡。
輸出結果應顯示,該實例與私人網路絡內部的資料庫之間可以成功地收發ICMP資料包。
這種架構能提供多個主要優勢。首先:安全性更高。VPC允許在不同子網(公共和專用)中對資源進行隔離。NAT閘道可確保專用子網中的實例能訪問互聯網,但不會直接受到公共互聯網的威脅。通過在VPC中使用NAT閘道,只允許從專用實例向互聯網發送出站流量,防止未經請求的入站連接帶來安全風險。我們將資料庫放在專用子網內,這裡的敏感性資料會受到保護,不直接暴露在互聯網上,從而降低了資料洩露的風險。
這種架構還大幅提高了可擴展性。NAT閘道在設計上可用于管理大量流量,並能自動調整以適應不斷增長的需求,且無需人工干預。隨著流量負載的增加,NAT閘道會調整其資源,以保持最佳性能並確保持續可用性。這種自動可擴展性對電商平臺尤其有益,因為這些平臺經常會因季節性銷售、促銷和不同的客戶行為而出現流量波動。借助NAT閘道,開發者可以確保其應用程式即使在高需求情況下也能保證回應速度和可靠性,提供更好的用戶體驗並支撐業務增長。
在Linode平臺的VPC中構建NAT閘道,可獲得一種安全高效的方式來管理公共資源和專用資源之間的網路流量。這可以保證我們的專用實例能夠訪問必要的外部資源,同時保護它們不直接暴露在互聯網上,最終提高雲計算基礎設施的安全性、可擴展性和效率。
按照本文介紹的方法實施類似的架構,不僅可以保護客戶的敏感性資料,還可以優化網路性能。如果希望優化雲安全,幫助業務面向未來增長做好充分準備,不妨考慮看看。別忘了,註冊Linode帳戶,可以獲得價值100美元的額度。充分利用起來吧!