使用網路安全性群組來控制網路存取

已完成

在將 ERP 系統移至 Azure 的專案中,您必須確保伺服器具有適當的隔離,以便只讓允許的系統進行網路連線。 例如,您有為 ERP 應用程式儲存資料的資料庫伺服器。 您想要封鎖已禁止的系統透過網路與伺服器進行通訊,但同時要允許應用程式伺服器與資料庫伺服器進行通訊。

網路安全性群組

網路安全性群組可篩選與 Azure 資源的往返網路流量。 網路安全性群組包含您所設定來允許或拒絕連入與連出流量的安全性規則。 您可使用網路安全性群組來篩選 VM 或子網路之間的流量,包括虛擬網路內或來自網際網路的流量。

網路安全性群組指派與評估

網路安全性群組會指派給網路介面或子網路。 當您將網路安全性群組指派給子網路時,規則便會套用至該子網路內的所有網路介面。 您可以將網路安全性群組與 VM 的網路介面建立關聯,來進一步限制流量。

當您將網路安全性群組同時套用至子網路和網路介面時,系統會個別評估每個網路安全性群組。 評估連入流量時,會先由套用至子網路的網路安全性群組評估,然後再由套用至網路介面的網路安全性群組評估。 相反地,從 VM 連出的流量會先由套用至網路介面的網路安全性群組評估,然後由套用至子網路的網路安全性群組評估。

Diagram of network security groups.

將網路安全性群組套用至子網路而不是套用至個別網路介面,可減少在系統管理及一般管理上花費的工夫。 此方法也可確保以同一組規則保護指定子網路內的所有 VM。

每個子網路與網路介面都可以套用一個網路安全性群組。 網路安全性群組支援 TCP、UDP 及 ICMP,並且在 OSI 模型的第 4 層運作。

在此製造業公司案例中,網路安全性群組可協助您保護網路。 您可以控制哪些電腦能夠連線至您的應用程式伺服器。 您可以設定網路安全性群組,以便只有特定範圍的 IP 位址才能連線至伺服器。 您可以透過只允許存取特定連接埠,或是只允許從特定連接埠或個別 IP 位址存取,來更進一步鎖定此存取行為。 您可以將這些規則套用至從內部部署網路遠端連線或在 Azure 內資源間連線的裝置。

安全性規則

網路安全性群組包含一或多個安全性規則。 您可以設定安全性規則來允許或拒絕流量。

規則具有數個屬性:

屬性 說明
名稱 網路安全性群組內的唯一名稱
優先順序 100 到 4096 之間的數字
來源與目的地 任何或個別的 IP 位址、無類別網域間路由選擇 (CIDR) 區塊 (例如 10.0.0.0/24)、服務標籤或應用程式安全性群組
通訊協定 TCP、UDP 或任何
方向 規則套用至連入或連出流量
連接埠範圍 個別連接埠或某個連接埠範圍
動作 允許或拒絕流量

系統會依優先順序使用 5 個元組資訊 (來源、來源連接埠、目的地、目的地連接埠與通訊協定) 來評估網路安全性群組的安全性規則,以允許或拒絕流量。 當規則的條件符合裝置設定時,就會停止規則處理。

例如,假設貴公司已建立一個優先順序為 200 的安全性規則,以允許將連接埠 3389 (RDP) 上的連入流量傳送至您的 Web 伺服器。 接下來,假設另一位系統管理員已建立一個優先順序為 150 的規則,以拒絕連接埠 3389 上的連入流量。 拒絕規則的優先順序較高,因為其處理順序較先。 優先順序為 150 的規則處理順序在優先順序為 200 的規則之前。

使用網路安全性群組時,連線為具狀態。 系統會自動允許相同 TCP/UDP 工作階段的傳回流量。 例如,允許連接埠 80 上流量的連入規則也會允許 VM 回應要求 (通常是在暫時性連接埠上)。 您不需要有一個對應的連出規則。

關於 ERP 系統,ERP 應用程式的 Web 伺服器則是會連線至自己子網路中的資料庫伺服器。 您可以套用安全性規則來聲明從 Web 伺服器到資料庫伺服器,唯一允許的通訊是用於 SQL Server 資料庫通訊的連接埠 1433 通訊。 所有連至資料庫伺服器的其他流量都將被拒絕。

預設安全性規則

當您建立網路安全性群組時,Azure 會建立數個預設規則。 您無法變更這些預設規則,但可以使用自己的規則來加以覆寫。 這些預設規則會允許在虛擬網路內和從 Azure 負載平衡器進行連線。 其也會允許對網際網路進行連出通訊,以及拒絕來自網際網路的連入流量。

連入流量的預設規則為:

優先順序 規則名稱 描述
65000 AllowVnetInbound 允許虛擬網路內從任何 VM 到任何 VM 的輸入流量
65001 AllowAzureLoadBalancerInbound 允許從預設負載平衡器到子網路內任何 VM 的流量
65500 DenyAllInBound 拒絕從任何外部來源到任何 VM 的流量

連出流量的預設規則為:

優先順序 規則名稱 描述
65000 AllowVnetOutbound 允許虛擬網路內從任何 VM 到任何 VM 的輸出流量
65001 AllowInternetOutbound 允許從任何 VM 到網際網路的連出流量
65500 DenyAllOutBound 拒絕從任何內部 VM 到虛擬網路外部系統的流量

增強型安全性規則

您可以使用網路安全性群組的增強型安全性規則來簡化管理大量規則的方式。 當您需要實作幾組較複雜的網路規則時,增強型安全性規則也可協助您。 增強型規則可讓您將下列選項新增至單一安全性規則:

  • 多個 IP 位址
  • 多個連接埠
  • 服務標籤
  • 應用程式安全性群組

假設貴公司想要限制對您資料中心內分散在數個網路位址範圍之資源的存取。 藉由增強型規則,您便可以將所有這些範圍新增至單一規則,藉此減輕您網路安全性群組中的系統管理額外負荷和複雜性。

服務標籤

您可以使用服務標籤來更進一步簡化網路安全性群組的安全性。 您可以全域或依區域允許或拒絕傳送至指定 Azure 服務的流量。

服務標籤可透過允許依資源或服務限制存取權,以簡化 VM 與 Azure 虛擬網路的安全性。 服務標籤代表一組 IP 位址,可協助簡化安全性規則的設定。 針對可以使用標籤來指定的資源,您不需要知道 IP 位址或連接埠詳細資料。

您可以限制對許多服務的存取。 Microsoft 會管理服務標籤 (這表示您無法建立自己的服務標籤)。 一些標籤範例包括:

  • VirtualNetwork:代表 Azure 中及您內部部署網路 (如果使用混合式連線) 中任何一處的所有虛擬網路位址。
  • AzureLoadBalancer:表示 Azure 的基礎結構負載平衡器。 此標籤會轉譯成產生 Azure 健全狀態探查的主機虛擬 IP 位址 (168.63.129.16)。
  • 網際網路:代表任何位於虛擬網路位址外且可公開存取的項目,包括具有公用 IP 位址的資源。 其中一個這類資源就是 Azure App Service 的 Web Apps 功能。
  • AzureTrafficManager:代表「Azure 流量管理員」的 IP 位址。
  • 存放裝置:代表 Azure 儲存體的 IP 位址空間。 您可以指定是要允許還是拒絕流量。 您也可以指定是否只對特定區域允許存取權,但您無法選取個別的儲存體帳戶。
  • SQL:代表 Azure SQL Database、適用於 MySQL 的 Azure 資料庫、適用於 PostgreSQL 的 Azure 資料庫,以及 Azure Synapse Analytics 服務的位址。 您可以指定是要允許或拒絕流量,還可以限制在特定區域。
  • AppService:代表 Azure App Service 的位址首碼。

應用程式安全性群組

應用程式安全性群組可讓您設定特定應用程式所用資源的網路安全性。 您可以將 VM 以邏輯方式分組,不論其 IP 位址或子網路指派為何。

您可以使用網路安全性群組內的應用程式安全性群組,將安全性規則套用至一組資源。 更容易部署和擴展特定應用程式工作負載;只需將新的 VM 部署新增至一或多個應用程式安全性群組,該 VM 就會自動採用該工作負載的安全性規則。

應用程式安全性群組可讓您將網路介面組成群組。 接著,您即可使用該應用程式安全性群組,作為網路安全性群組內的來源或目的地規則。

例如,貴公司在虛擬網路中有許多前端伺服器。 Web 伺服器必須可供透過連接埠 80 與 8080 存取。 資料庫伺服器必需可供透過連接埠 1433 存取。 您將 Web 伺服器的網路介面指派給一個應用程式安全性群組,並將資料庫伺服器的網路介面指派給另一個應用程式安全性群組。 接著,您在網路安全性群組中建立兩個連入規則。 一個規則允許傳送 HTTP 流量至 Web 伺服器應用程式安全性群組中的所有伺服器。 另一個規則允許傳送 SQL 流量至資料庫伺服器應用程式安全性群組中的所有伺服器。

Diagram of app security groups.

如果沒有應用程式安全性群組,您必須為每部 VM 建立個別規則,或將網路安全性群組新增至子網路,然後將所有 VM 新增至該子網路。

應用程式安全性群組的主要優點在於可讓系統管理變得更簡單。 您可以在部署或重新部署應用程式伺服器時,輕鬆地對應用程式安全性群組新增及移除網路介面。 您也可以將新規則動態地套用至應用程式安全性群組,這些規則會接著自動套用至該應用程式安全性群組中的所有 VM。

使用網路安全性群組的時機

最佳做法是,您應該一律使用網路安全性群組來協助保護已與網路連線的資產,以避免不必要的流量。 網路安全性群組可讓您更精細地控制對網路層的存取權,無須面對為每部 VM 或虛擬網路設定安全性規則時的潛在複雜性。