Azure網絡安全組NSG
下圖顯示如何處理 NSG 規則
NSG 資源
NSG 包含以下屬性:
屬性 | 說明 | 約束 | 註意事項 |
名稱 | NSG 的名稱 | 必須在區域內唯一。 | 由於可能需要創建多個 NSG,因此請確保設置命名約定,以便輕松標識 NSG 的功能。 |
區域 | 在其中創建 NSG 的 Azure 區域。 | 只能將多個 NSG 關聯到該 NSG 所在區域中的資源。 | 若要了解一個區域可以有多少 NSG,請閱讀 Azure 限制。 |
資源組 | NSG 所在的資源組。 | 雖然 NSG 存在於一個資源組中,但可將其關聯到任意資源組中的資源,只要該資源與 NSG 屬於同一 Azure 區域。 | 資源組用於以部署單元的形式集中管理多個資源。 |
規則 | 入站或出站規則,用於定義允許或拒絕的具體流量。 | 請參閱本文的 NSG 規則部分。 |
需要註意的是:不支持將基於終結點的 ACL 和網絡安全組置於相同 VM 實例上。 如果想要使用 NSG,但已有了終結點 ACL,則請先刪除該終結點 ACL。
NSG 規則
NSG 規則包含以下屬性:
屬性 | 說明 | 約束 | 註意事項 |
名稱 | 規則的名稱。 | 必須在區域內唯一。 | 一個 NSG 中可以有多個規則,因此請確保遵循命名約定,以便標識規則的功能。 |
協議 | 要與規則匹配的協議。 | TCP、UDP 或 * | 使用 * 作為協議時,會包括 ICMP(僅限東西通信),以及 UDP 和 TCP,可能會減少所需規則的數量。 |
源端口範圍 | 要與規則匹配的源端口範圍。 | 單個端口號(從 1 到 65535)、端口範圍(示例:1-65535)、或 *(表示所有端口)。 | 源端口可以是暫時的。 除非客戶端程序在使用特定端口,否則請在大多數情況下使用 *。 |
目標端口範圍 | 要與規則匹配的目標端口範圍。 | 單個端口號(從 1 到 65535)、端口範圍(示例:1-65535)、或 *(表示所有端口)。 | 盡可能嘗試使用端口範圍,這樣就不需使用多個規則。 |
方向 | 要與規則匹配的流量方向。 | 入站或出站。 | 入站和出站規則會根據方向分別處理。 |
優先級 | 將按優先級順序來檢查規則。 一旦應用某個規則,不再檢查其他規則的匹配情況。 | 介於 100 到 4096 之間的數字。 | 考慮以 100 為增量,為每個規則創建規則跳轉優先級,為將來可能創建的新規則留出空間。 |
操作 | 規則匹配時要應用的訪問類型。 | 允許或拒絕。 | 請記住,如果找不到某個數據包的允許規則,則會丟棄該數據包。 |
默認標記
默認標記是系統提供的針對某類 IP 地址的標識符。 可以使用任何規則的源地址前綴和目標地址前綴屬性中的默認標記。 有三個可使用的默認標記:
VirtualNetwork (Resource Manager)(如果是經典部署模型,則為 VIRTUAL_NETWORK):此標記包括虛擬網絡地址空間(Azure 中定義的 CIDR 範圍)、所有連接的本地地址空間,以及連接的 Azure VNet(本地網絡)。
AzureLoadBalancer (Resource Manager)(如果是經典部署模型,則為 AZURE_LOADBALANCER):此標記表示 Azure 的基礎結構負載均衡器。 此標記將轉換為 Azure 數據中心 IP,Azure 負載均衡器的運行狀況探測源於該 IP。
Internet (Resource Manager)(如果是經典部署模型,則為 INTERNET):此標記表示虛擬網絡外部的 IP 地址空間,可以通過公共 Internet 進行訪問。
默認規則
所有 NSG 都包含一組默認規則。 默認規則無法刪除,但由於給它們分配的優先級最低,可以用創建的規則來重寫它們。
默認規則允許和禁止的流量如下所示:
虛擬網絡:從方向上來說,在虛擬網絡中發起和結束的通信可以是入站通信,也可以是出站通信。
Internet:允許出站通信,但阻止入站通信。
負載均衡器:允許 Azure 負載均衡器探測 VM 和角色實例的運行狀況。 如果重寫此規則,Azure 負載均衡器運行狀況探測會失敗,這可能對服務造成影響。
入站默認規則
名稱 | Priority | Source IP | Source Port | Destination IP | Destination Port | 協議 | Access |
AllowVNetInBound | 65000 | VirtualNetwork | * | VirtualNetwork | * | * | 允許 |
AllowAzureLoadBalancerInBound | 65001 | AzureLoadBalancer | * | * | * | * | 允許 |
DenyAllInBound | 65500 | * | * | * | * | * | 拒絕 |
出站默認規則
名稱 | Priority | Source IP | Source Port | Destination IP | Destination Port | 協議 | Access |
AllowVnetOutBound | 65000 | VirtualNetwork | * | VirtualNetwork | * | * | 允許 |
AllowInternetOutBound | 65001 | * | * | Internet | * | * | 允許 |
DenyAllOutBound | 65500 | * | * | * | * | * | 拒絕 |
將 NSG 相關聯
可以根據所使用的部署模型將 NSG 關聯到 VM、NIC 和子網,如下所示:
VM(僅經典部署模型):安全規則適用於所有出入 VM 的流量。
NIC(僅 Resource Manager 部署模型):安全規則適用於所有與 NSG 關聯的出入 NIC 的流量。 在多 NIC VM 中,可以為每個 NIC 單獨應用不同(或相同)的 NSG。
子網(資源管理器部署模型和經典部署模型):安全規則適用於出入任何連接到子網的資源的任何流量。
可以將不同的 NSG 關聯到 VM(或 NIC,具體取決於部署模型)以及 NIC 或 VM 連接到的子網。 安全規則在每個 NSG 中按優先級參照以下順序應用到流量:
入站流量
應用到子網的 NSG:如果子網 NSG 存在相應的拒絕流量的規則,則會丟棄數據包。
應用到 NIC (Resource Manager) 或 VM(經典)的 NSG:如果 VM\NIC NSG 存在相應的拒絕流量的規則,則會丟棄 VM\NIC 上的數據包,即使子網 NSG 存在相應的允許流量的規則。
出站流量
應用到 NIC (Resource Manager) 或 VM(經典)的 NSG:如果 VM\NIC NSG 存在相應的拒絕流量的規則,則會丟棄數據包。
應用到子網的 NSG:如果子網 NSG 存在相應的拒絕流量的規則,則會丟棄數據包,即使 VM\NIC NSG 存在相應的允許流量的規則。
使用Azure門戶創建NSG
登錄Azure門戶,點擊創建資源,選擇網絡,點擊網絡安全組--創建,如下圖所示
輸入名稱,選擇訂閱,資源組可以新建也可以選擇現有項,選擇好位置,然後點擊創建
資源組創建成功後,在其概述中可以看到默認的規則
在入站安全規則和出站安全規則中可以分別去添加所需的規則,如下圖
下圖所示為添加入站安全規則,需要填寫源、源端口範圍、目標、目標端口範圍、優先級,選擇協議和操作
還可以在說明中填寫備註信息
Azure網絡安全組NSG