網路安全性群組的資源記錄

網路安全性群組 (NSG) 包含允許或拒絕前往虛擬網路子網路、網路介面或兩者流量的規則。

對 NSG 啟用記錄之後,您可以收集下列類型的資源記錄資訊:

  • 事件:記錄套用至虛擬機器的 NSG 規則的項目 (根據 MAC 位址)。
  • 規則計數器:包含套用每個 NSG 規則以允許或拒絕流量之次數的項目。 這些規則的狀態每隔 300 秒收集一次。

只有透過 Azure Resource Manager 部署模型來部署的 NSG 才有資源記錄。 對於透過傳統部署模型來部署的 NSG,您無法啟用資源記錄。 如需詳細資訊,請參閱了解部署模型

資源記錄會針對您要收集診斷資料的每個 NSG 個別啟用。 如果您對活動作業記錄較感興趣,請參閱 Azure 平台記錄概觀。 如果您對流經 NSG 的 IP 流量感興趣,請參閱網路安全性群組的流量記錄

啟用 記錄

您可以使用 Azure 入口網站Azure PowerShellAzure CLI 來啟用資源記錄。

Azure 入口網站

  1. 登入 Azure 入口網站

  2. 在 Azure 入口網站頂端的搜尋方塊中,輸入網路安全性群組。 在搜尋結果中選取 [網路安全性群組]

  3. 選取要啟用記錄的 NSG。

  4. 在 [監視] 底下,選取 [診斷設定],然後選取 [新增診斷設定]

    Screenshot shows the diagnostic settings for an NSG with Add diagnostic setting highlighted.

  5. 在 [診斷設定] 中,輸入名稱,例如 myNsgDiagnostic

  6. 針對 [記錄],選取 [所有記錄],或選取個別的記錄類別。 如需每個類別的詳細資訊,請參閱記錄類別

  7. 在 [目的地詳細資料] 底下,選取一或多個目的地:

    • 傳送至 Log Analytics 工作區
    • 封存至儲存體帳戶
    • 串流至事件中樞
    • 傳送至合作夥伴解決方案

    如需詳細資訊,請參閱記錄目的地

  8. 選取 [儲存]。

  9. 檢視及分析記錄。 如需詳細資訊,請參閱檢視及分析記錄

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 入口網站記錄往返於虛擬機器的網路流