網路安全性群組的資源記錄
網路安全性群組 (NSG) 包含允許或拒絕前往虛擬網路子網路、網路介面或兩者流量的規則。
對 NSG 啟用記錄之後,您可以收集下列類型的資源記錄資訊:
- 事件:系統會根據 MAC 位址,記錄 NSG 規則套用至虛擬機的專案。
- 規則計數器:包含套用每個 NSG 規則以允許或拒絕流量之次數的項目。 這些規則的狀態每隔 300 秒收集一次。
資源記錄僅適用於透過 Azure Resource Manager 部署模型部署的 NSG。 對於透過傳統部署模型來部署的 NSG,您無法啟用資源記錄。 如需詳細資訊,請參閱了解部署模型。
資源記錄會針對您要收集診斷資料的每個 NSG 個別啟用。 如果您對活動或作業記錄較感興趣,請參閱 Azure 平台記錄概觀。 如果您對流經 NSG 的 IP 流量感興趣,請參閱網路安全性群組的流量記錄。
啟用 記錄
您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來啟用資源記錄。
Azure 入口網站
登入 Azure 入口網站。
在 Azure 入口網站頂端的搜尋方塊中,輸入網路安全性群組。 在搜尋結果中選取 [網路安全性群組]。
選取您要啟用記錄的 NSG。
在 [監視] 底下,選取 [診斷設定],然後選取 [新增診斷設定]。
在 [診斷設定] 中,輸入名稱,例如 myNsgDiagnostic。
針對 [記錄],選取 [所有記錄],或選取個別的記錄類別。 如需每個類別的詳細資訊,請參閱記錄類別。
在 [目的地詳細資料] 底下,選取一或多個目的地:
- 傳送至 Log Analytics 工作區。
- 封存至儲存體帳戶。
- 串流處理至事件中樞。
- 傳送至合作夥伴解決方案。
如需詳細資訊,請參閱記錄目的地。
選取 [儲存]。
檢視及分析記錄。 如需詳細資訊,請參閱檢視及分析記錄。
Azure PowerShell
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
您可以在 Azure Cloud Shell 的本節中執行可用的命令。 您也可以從您的電腦執行 PowerShell。 Cloud Shell 是免費的互動式殼層。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。
若是從電腦執行 PowerShell,則需要 Azure PowerShell 模組 1.0.0 版或更新版本。 執行 Get-Module -ListAvailable Az
以尋找安裝的版本。 如果您需要升級,請參閱安裝 Azure PowerShell 模組。 如果您在本機執行 PowerShell,您也需要執行 Connect-AzAccount Cmdlet,以具有必要權限的帳戶登入 Azure。
若要啟用資源記錄,您需要現有 NSG 的識別碼。 如果您沒有現有的 NSG,請使用 New-AzNetworkSecurityGroup Cmdlet 建立。
使用 Get-AzNetworkSecurityGroup Cmdlet 取得您想要啟用資源記錄的 NSG。 將 NSG 儲存在變數中供稍後使用。 例如,若要擷取名為 myNsg
的 NSG 存在於名為 myResourceGroup
的資源群組中,請輸入下列命令:
$Nsg=Get-AzNetworkSecurityGroup `
-Name myNsg `
-ResourceGroupName myResourceGroup
您可以將資源記錄寫入不同目的地類型。 如需詳細資訊,請參閱記錄目的地。 在本文中,記錄會傳送到 Log Analytics 工作區目的地。 如果您沒有現有的工作區,請使用 New-AzOperationalInsightsWorkspace Cmdlet 來建立工作區。
使用 Get-AzOperationalInsightsWorkspace Cmdlet 來擷取現有的 Log Analytics 工作區。 例如,若要取得並儲存名為的資源群組中名為 myWorkspace
myWorkspaces
的現有工作區,請輸入下列命令:
$Oms=Get-AzOperationalInsightsWorkspace `
-ResourceGroupName myWorkspaces `
-Name myWorkspace
您可以啟用的記錄類別有兩個。 如需詳細資訊,請參閱記錄類別。 使用 New-AzDiagnosticSetting Cmdlet 啟用 NSG 的資源記錄。 下列範例會將事件和計數器類別資料記錄至 NSG 的工作區。 它會使用您先前命令取得的 NSG 和工作區的識別碼:
New-AzDiagnosticSetting `
-Name myDiagnosticSetting `
-ResourceId $Nsg.Id `
-WorkspaceId $Oms.ResourceId
如果您想要登入與 Log Analytics 工作區不同的目的地,請在命令中使用適當的參數。 如需詳細資訊,請參閱 Azure 資源記錄。
如需設定的詳細資訊,請參閱 New-AzDiagnosticSetting。
檢視及分析記錄。 如需詳細資訊,請參閱檢視及分析記錄。
Azure CLI
您可以在 Cloud Shell 的本節中執行命令,或從您的電腦執行 Azure CLI。 Cloud Shell 是免費的互動式殼層。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。
如果您是從電腦執行 CLI,您需要版本 2.0.38 或更新版本。 在您的電腦上執行 az --version
以尋找已安裝的版本。 如果您需要升級,請參閱 安裝 Azure CLI。 如果您在本機執行 CLI,則還需要執行 az login
以使用具有必要權限的帳戶來登入 Azure。
若要啟用資源記錄,您需要現有 NSG 的識別碼。 如果您沒有現有的 NSG,請使用 az network nsg create 建立。
使用 az network nsg show 取得並儲存您想要啟用資源記錄的 NSG。 例如,若要擷取名為 myNsg
的 NSG 存在於名為 myResourceGroup
的資源群組中,請輸入下列命令:
nsgId=$(az network nsg show \
--name myNsg \
--resource-group myResourceGroup \
--query id \
--output tsv)
您可以將資源記錄寫入不同目的地類型。 如需詳細資訊,請參閱記錄目的地。 舉例來說,在本文中,記錄會傳送到 Log Analytics 工作區目的地。 如需詳細資訊,請參閱記錄類別。
使用 az monitor diagnostic-settings create 對 NSG 啟用資源記錄。 下列範例會將事件和計數器類別數據記錄至名為 的現有工作區,該工作區存在於名為myWorkspace
myWorkspaces
的資源群組中。 它會使用您先前命令儲存的 NSG 的識別碼。
az monitor diagnostic-settings create \
--name myNsgDiagnostics \
--resource $nsgId \
--logs '[ { "category": "NetworkSecurityGroupEvent", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "NetworkSecurityGroupRuleCounter", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
--workspace myWorkspace \
--resource-group myWorkspaces
如果您沒有現有的工作區,請使用 Azure 入口網站 或 Azure PowerShell 來建立工作區。 您可以啟用記錄的記錄類別有兩個。
如果您只想要記錄某個類別或其他類別的資料,請在上一個命令中移除您不想要記錄資料的類別。 如果您想要登入與 Log Analytics 工作區不同的目的地,請使用適當的參數。 如需詳細資訊,請參閱 Azure 資源記錄。
檢視及分析記錄。 如需詳細資訊,請參閱檢視及分析記錄。
記錄目的地
您可以將診斷資料傳送至下列選項:
記錄類別
JSON 格式的資料會針對下列記錄類別撰寫:事件和規則計數器。
活動
事件記錄檔包含根據 MAC 位址,將哪些 NSG 規則套用至虛擬機的相關信息。 每個事件會記錄下列資料。 在下列範例中,數據會記錄給IP位址為192.168.1.4的虛擬機,以及00-0D-3A-92-6A-7C的MAC位址。
{
"time": "[DATE-TIME]",
"systemId": "[ID]",
"category": "NetworkSecurityGroupEvent",
"resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION-ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
"operationName": "NetworkSecurityGroupEvents",
"properties": {
"vnetResourceGuid":"[ID]",
"subnetPrefix":"192.168.1.0/24",
"macAddress":"00-0D-3A-92-6A-7C",
"primaryIPv4Address":"192.168.1.4",
"ruleName":"[SECURITY-RULE-NAME]",
"direction":"[DIRECTION-SPECIFIED-IN-RULE]",
"priority":"[PRIORITY-SPECIFIED-IN-RULE]",
"type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
"conditions":{
"protocols":"[PROTOCOLS-SPECIFIED-IN-RULE]",
"destinationPortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
"sourcePortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
"sourceIP":"[SOURCE-IP-OR-RANGE-SPECIFIED-IN-RULE]",
"destinationIP":"[DESTINATION-IP-OR-RANGE-SPECIFIED-IN-RULE]"
}
}
}
規則計數器
規則計數器記錄中針對每個套用至資源的規則,包含其相關資訊。 每次套用規則時會記錄下列範例資料。 在下列範例中,數據會記錄給IP位址為192.168.1.4的虛擬機,以及00-0D-3A-92-6A-7C的MAC位址。
{
"time": "[DATE-TIME]",
"systemId": "[ID]",
"category": "NetworkSecurityGroupRuleCounter",
"resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
"operationName": "NetworkSecurityGroupCounters",
"properties": {
"vnetResourceGuid":"[ID]",
"subnetPrefix":"192.168.1.0/24",
"macAddress":"00-0D-3A-92-6A-7C",
"primaryIPv4Address":"192.168.1.4",
"ruleName":"[SECURITY-RULE-NAME]",
"direction":"[DIRECTION-SPECIFIED-IN-RULE]",
"type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
"matchedConnections":125
}
}
注意
不會記錄通訊的來源IP位址。 您可以針對 NSG 啟用 [NSG 流程記錄],它會記錄所有規則計數器資訊,以及起始通訊的來源 IP 位址。 NSG 流量記錄資料會寫入至 Azure 儲存體帳戶。 您可以使用 Azure 網路監看員的流量分析功能來分析資料。
檢視及分析記錄
如果您將診斷資料傳送到下列位置:
Azure 監視器記錄:您可以使用 NSG 分析 解決方案來取得增強的深入解析。 此解決方案能提供 NSG 規則的視覺效果,以根據 MAC 位址允許或拒絕虛擬機器中網路介面的流量。
Azure 儲存體帳戶:資料會寫入至 PT1H.json 檔案。 您可以:
- 下列路徑中的事件記錄檔: insights-logs-networksecuritygroupevent/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT。NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
- 下列路徑中的規則計數器記錄: insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT。NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
若要了解如何檢視資源記錄資料,請參閱 Azure 平台記錄概觀。
相關內容
如需活動記錄的詳細資訊,請參閱 Azure 平台記錄概觀。
預設會針對透過任何一個 Azure 部署模型所建立的 NSG 啟用活動記錄。 若要判斷在 NSG 上已完成哪些作業,請在活動記錄中尋找包含下列資源類型的項目:
Microsoft.ClassicNetwork/networkSecurityGroups
Microsoft.ClassicNetwork/networkSecurityGroups/securityRules
Microsoft.Network/networkSecurityGroups
Microsoft.Network/networkSecurityGroups/securityRules
若要瞭解如何記錄診斷資訊,請參閱使用 Azure 入口網站 來回記錄虛擬機的網路流量。