此參考體系結構顯示了一個可將本地網(wǎng)絡擴展到Azure的安全混合網(wǎng)絡。該體系結構實現(xiàn)了本地網(wǎng)絡和Azure虛擬網(wǎng)絡之間的外圍網(wǎng)絡(也稱為外圍網(wǎng)絡)。所有入站和出站流量均通過Azure防火墻。部署此解決方案。
下載此體系結構的Visio文件。
此體系結構需要使用VPN網(wǎng)關或ExpressRoute連接來連接到本地數(shù)據(jù)中心。此體系結構的典型用途包括:
在本地運行一部分工作負荷,在Azure中運行一部分工作負荷的混合應用程序。
需要對從本地數(shù)據(jù)中心進入Azure虛擬網(wǎng)絡的流量進行精細控制的基礎結構。
必須審核傳出流量的應用程序。這通常是許多商業(yè)系統(tǒng)的監(jiān)管要求,可以幫助防止公開披露私有信息。
體系結構
該體系結構包括以下組件。
本地網(wǎng)絡。組織中實現(xiàn)的專用局域網(wǎng)。
Azure虛擬網(wǎng)絡。虛擬網(wǎng)絡承載在Azure中運行的應用程序和其他資源。
網(wǎng)關。網(wǎng)關提供本地網(wǎng)絡中的路由器與虛擬網(wǎng)絡之間的連接。網(wǎng)關放在其自己的子網(wǎng)中。
Azure防火墻。Azure防火墻是作為服務托管的防火墻。防火墻實例放置在其自己的子網(wǎng)中。
虛擬網(wǎng)絡路由。虛擬網(wǎng)絡路由定義Azure虛擬網(wǎng)絡中的IP流量流。如上圖所示,有兩個用戶定義的路由表。
在網(wǎng)關子網(wǎng)中,發(fā)送到web層子網(wǎng)的流量(10.0.1.0/24)通過Azure防火墻實例進行路由。
在web層子網(wǎng)中,由于VNet本身的地址空間沒有路由指向Azure防火墻,因此web層實例可以直接相互通信,而不能通過Azure防火墻進行通信。
備注
根據(jù)VPN連接的要求,你可以配置邊界網(wǎng)關協(xié)議(BGP)路由,以實現(xiàn)將流量定向到本地網(wǎng)絡的轉發(fā)規(guī)則。
網(wǎng)絡安全組。使用安全組限制虛擬網(wǎng)絡中的網(wǎng)絡流量。例如,在隨此參考體系結構一起提供的部署中,web層子網(wǎng)允許來自本地網(wǎng)絡和虛擬網(wǎng)絡中的TCP流量;業(yè)務層允許來自web層的流量;數(shù)據(jù)層允許來自業(yè)務層的流量。
堡壘。使用Azure堡壘,可以通過SSH或遠程桌面協(xié)議(RDP)登錄到虛擬網(wǎng)絡中的vm,而無需直接向Internet公開vm。使用堡壘管理虛擬網(wǎng)絡中的Vm。
建議
以下建議適用于大多數(shù)方案。除非有優(yōu)先于這些建議的特定要求,否則請遵循這些建議。
訪問控制建議
使用azure RBAC)(azure基于角色的訪問控制來管理應用程序中的資源。考慮創(chuàng)建以下自定義角色:
一個DevOps角色,具有管理應用程序的基礎結構、部署應用程序組件以及監(jiān)視和重新啟動VM的權限。
一個集中式IT管理員角色,用于管理和監(jiān)視網(wǎng)絡資源。
安全IT管理員角色,用于管理安全網(wǎng)絡資源,例如防火墻。
DevOps和IT管理員角色不應具有對防火墻資源的訪問權限。這應限制為安全性IT管理員角色。
有關資源組的建議
可以通過將Vm、虛擬網(wǎng)絡和負載均衡器組合在一起來輕松管理Azure資源(例如Vm、虛擬網(wǎng)絡和負載均衡器)。將Azure角色分配給每個資源組以限制訪問。
建議創(chuàng)建以下資源組:
包含虛擬網(wǎng)絡的資源組(不包括Vm)、Nsg以及用于連接到本地網(wǎng)絡的網(wǎng)關資源。將集中式IT管理員角色分配給此資源組。
一個資源組,其中包含用于網(wǎng)關子網(wǎng)的Azure防火墻實例和用戶定義的路由。將安全性IT管理員角色分配給此資源組。
用于每個應用層的單獨資源組,包含負載均衡器和VM。請注意,此資源組不應包含每個層的子網(wǎng)。將DevOps角色分配給此資源組。
網(wǎng)絡建議
若要接受來自internet的入站流量,請將DNAT)規(guī)則(目標網(wǎng)絡地址轉換添加到Azure防火墻。
目標地址=防火墻實例的公共IP地址。
翻譯地址=虛擬網(wǎng)絡中的專用IP地址。
該示例部署將端口80的internet流量路由到web層負載均衡器。
使用站點到站點VPN隧道通過本地網(wǎng)絡強制隧道所有出站internet流量,并使用網(wǎng)絡地址轉換(NAT)路由到internet。這可以防止任何存儲在數(shù)據(jù)層中的機密信息的意外泄漏,并允許檢查和審核所有傳出流量。
請勿完全阻止來自應用程序層的internet流量,因為這會阻止這些層使用依賴公共IP地址的Azure PaaS服務,例如VM診斷日志記錄、VM擴展下載和其他功能。Azure診斷還要求組件可以讀取和寫入Azure存儲帳戶。
驗證出站Internet流量是否正確地強制隧道傳遞。如果使用的是本地服務器上的"路由和遠程訪問"服務的VPN連接,請使用WireShark等工具。
請考慮使用應用程序網(wǎng)關或Azure前門進行SSL終止。
可伸縮性注意事項
有關VPN網(wǎng)關的帶寬限制的詳細信息,請參閱網(wǎng)關sku。對于更高帶寬,請考慮升級到ExpressRoute網(wǎng)關。ExpressRoute提供最多10 Gbps的帶寬,且延遲低于VPN連接。
有關Azure網(wǎng)關的可伸縮性的詳細信息,請參閱使用Azure和本地VPN實現(xiàn)混合網(wǎng)絡體系結構和使用Azure ExpressRoute實現(xiàn)混合網(wǎng)絡體系結構中的可伸縮性注意事項部分。
可用性注意事項
如果要使用Azure ExpressRoute在虛擬網(wǎng)絡和本地網(wǎng)絡之間提供連接,請將VPN網(wǎng)關配置為在ExpressRoute連接不可用時提供故障轉移。
有關為VPN和ExpressRoute連接保持可用性的特定信息,請參閱使用Azure和本地VPN實現(xiàn)混合網(wǎng)絡體系結構和使用Azure ExpressRoute實現(xiàn)混合網(wǎng)絡體系結構中的可用性注意事項。
可管理性注意事項
如果從本地網(wǎng)絡到Azure的網(wǎng)關連接已關閉,你仍可以通過Azure堡壘訪問Azure虛擬網(wǎng)絡中的Vm。
參考體系結構中每個層的子網(wǎng)都受NSG規(guī)則保護??赡苄枰獎?chuàng)建一個規(guī)則以打開用于在Windows VM上進行遠程桌面協(xié)議(RDP)訪問的端口3389,或是用于在Linux VM上進行安全外殼(SSH)訪問的端口22。其他管理和監(jiān)視工具可能需要規(guī)則打開其他端口。
如果要使用ExpressRoute在本地數(shù)據(jù)中心與Azure之間提供連接,請使用Azure連接工具包(AzureCT)監(jiān)視和解決連接問題.
可以在以下文章中找到有關監(jiān)視和管理VPN和ExpressRoute連接的其他信息:
使用Azure和本地VPN實現(xiàn)混合網(wǎng)絡體系結構
使用Azure ExpressRoute實施混合網(wǎng)絡體系結構
安全注意事項
此參考體系結構實現(xiàn)多個安全級別。
通過Azure防火墻路由所有本地用戶請求
網(wǎng)關子網(wǎng)中的用戶定義路由阻止所有用戶請求,而不是從本地收到的請求。路由會將允許的請求傳遞給防火墻,如果防火墻規(guī)則允許這些請求,則會將這些請求傳遞給應用程序。可以添加其他路由,但請確保它們不會意外繞過防火墻或阻止用于管理子網(wǎng)的管理流量。
使用NSG阻止/傳遞應用層之間的流量
各層之間的流量使用NSG進行限制。業(yè)務層阻止不是源自Web層的所有流量,而數(shù)據(jù)層阻止不是源自業(yè)務層的所有流量。如果要求擴展NSG規(guī)則以允許對這些層進行更廣泛的訪問,請針對安全風險權衡這些要求。每個新入站通道都表示可能會發(fā)生意外或有意的數(shù)據(jù)泄露或應用程序損壞。
DevOps訪問權限
使用AZURE RBAC來限制DevOps可以對每個層執(zhí)行的操作。授予權限時,請使用最低特權原則。記錄所有管理操作并執(zhí)行定期審核,確保所有配置更改按計劃進行。
成本注意事項
使用Azure定價計算器估算成本。其他注意事項,請參閱Microsoft Azure Well-Architected框架的"成本"部分。
下面是在此體系結構中使用的服務的成本注意事項。
Azure防火墻
在此體系結構中,Azure防火墻部署在虛擬網(wǎng)絡中,以控制網(wǎng)關的子網(wǎng)與運行應用層的子網(wǎng)之間的流量。通過這種方式,Azure防火墻具有成本效益,因為它用作多個工作負荷所使用的共享解決方案。下面是Azure防火墻定價模型:
每個部署小時的固定費率。
每GB處理的數(shù)據(jù)支持自動縮放。
與網(wǎng)絡虛擬設備進行比較時(Nva),通過Azure防火墻,可節(jié)省多達30-50%的時間。有關詳細信息,請參閱Azure防火墻和NVA。
Azure Bastion
Azure堡壘通過RDP和SSH安全連接到虛擬機,而無需在虛擬機上配置公共IP。
堡壘計費相當于配置為jumpbox的基本低級別虛擬機。將堡壘與跳轉盒進行比較可以更經(jīng)濟高效地考慮堡壘的內置安全功能,存儲和管理單獨的服務器不會產生額外的成本。
Azure虛擬網(wǎng)絡
Azure虛擬網(wǎng)絡是免費的。允許每個訂閱在所有區(qū)域中最多創(chuàng)建50個虛擬網(wǎng)絡。虛擬網(wǎng)絡邊界內發(fā)生的所有流量都是免費的。因此,如果同一VNET中的兩個Vm彼此通信,則不會產生任何費用。
內部負載均衡器
位于同一虛擬網(wǎng)絡中的虛擬機之間的基本負載均衡是免費的。
在此體系結構中,內部負載均衡器用于對虛擬網(wǎng)絡內的流量進行負載均衡。
部署解決方案
GitHub上提供了可實施這些建議的參考體系結構部署。
先決條件
克隆、下載參考體系結構GitHub存儲庫的zip文件或創(chuàng)建其分支。
安裝Azure CLI 2.0。
安裝Node和NPM
安裝Azure構建基塊npm包。
Bash
npm install-g mspnp/azure-building-blocks
在命令提示符、bash提示符或PowerShell提示符下,按如下所示登錄到你的Azure帳戶:
Bash
az login
部署資源
導航到參考體系結構GitHub存儲庫的/dmz/secure-vnet-hybrid文件夾。
運行以下命令:
Bash
azbb-s<subscription_id>-g<resource_group_name>-l<region>-p onprem.json--deploy
運行以下命令:
Bash
azbb-s<subscription_id>-g<resource_group_name>-l<region>-p secure-vnet-hybrid.json--deploy
連接本地網(wǎng)關和Azure網(wǎng)關
此步驟連接兩個本地網(wǎng)絡網(wǎng)關。
在Azure門戶中,導航到創(chuàng)建的資源組。
找到名為ra-vpn-vgw-pip的資源,并復制“概述”邊欄選項卡中顯示的IP地址。
找到名為onprem-vpn-lgw的資源。
單擊“配置”邊欄選項卡。在“IP地址”下,粘貼步驟2中獲取的IP地址。
單擊“保存”并等待操作完成??赡苄枰蠹s5分鐘。
找到名為onprem-vpn-gateway1-pip的資源。復制“概述”邊欄選項卡中顯示的IP地址。
找到名為ra-vpn-lgw的資源。
單擊“配置”邊欄選項卡。在“IP地址”下,粘貼步驟6中獲取的IP地址。
單擊“保存”并等待操作完成。
若要驗證連接,請轉到每個網(wǎng)關的“連接”邊欄選項卡。狀態(tài)應為“已連接”。
驗證網(wǎng)絡流量是否抵達Web層
在Azure門戶中,導航到創(chuàng)建的資源組。
找到名為的資源fe-config1-web,它是web層前面的負載均衡器。復制“概述”邊欄選項卡中的專用IP地址。
找到名為jb-vm1的VM。此VM表示本地網(wǎng)絡。單擊“連接”,使用遠程桌面連接到VM。用戶名和密碼已在onprem.json文件中指定。
在遠程桌面會話中打開Web瀏覽器,并導航到步驟2中獲取的IP地址。應會看到默認的Apache2服務器主頁。