網路安全性群組的資源記錄
網路安全性群組 (NSG) 包含允許或拒絕前往虛擬網路子網路、網路介面或兩者流量的規則。
對 NSG 啟用記錄之後,您可以收集下列類型的資源記錄資訊:
- 事件:記錄套用至虛擬機器的 NSG 規則的項目 (根據 MAC 位址)。
- 規則計數器:包含套用每個 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。 Azure 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 儲存在變數中供稍後使用。 例如,若要擷取名為 myNsg 的 NSG 且該 NSG 存在於名為 myResourceGroup 的資源群組中,請輸入下列命令:
$Nsg=Get-AzNetworkSecurityGroup `
-Name myNsg `
-ResourceGroupName myResourceGroup
您可以將資源記錄寫入不同目的地類型。 如需詳細資訊,請參閱記錄目的地。 在本文中,記錄會傳送到 Log Analytics 工作區目的地。 如果您目前沒有工作區,則可以使用 New-AzOperationalInsightsWorkspace Cmdlet 來建立工作區。
使用 Get-AzOperationalInsightsWorkspace Cmdlet 來擷取現有的 Log Analytics 工作區。 例如,若要在名為 myWorkspaces 的資源群組中取得並儲存名為 myWorkspace 的現有工作區,請輸入下列命令:
$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
您可以在 Azure Cloud Shell 中執行本節的命令,或從您的電腦執行 Azure CLI。 Azure 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 來取得並儲存您想要啟用資源記錄的網路安全性群組。 例如,若要擷取名為 myNsg 的 NSG 且該 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 格式的資料會針對下列記錄類別撰寫:事件和規則計數器。
Event
事件記錄會包含套用至虛擬機器的 NSG 規則的相關資訊 (根據 MAC 位址)。 每個事件會記錄下列資料。 在下列範例中,會為 IP 位址為 192.168.1.4 且 MAC 為 00-0D-3A-92-6A-7C 的虛擬機器記錄資料:
{
"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 且 MAC 為 00-0D-3A-92-6A-7C 的虛擬機器記錄資料:
{
"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 規則的視覺效果,以根據 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 入口網站記錄往返於虛擬機器的網路流。