Share via


使用 Azure CLI 管理 NSG 流量記錄

網路安全組流量記錄是 Azure 網路監看員 的一項功能,可讓您記錄流經網路安全組的 IP 流量相關信息。 如需網路安全組流量記錄的詳細資訊,請參閱 NSG 流量記錄概觀

在本文中,您將瞭解如何使用 Azure CLI 建立、變更、停用或刪除 NSG 流量記錄。 您可以瞭解如何使用 Azure 入口網站、PowerShellREST APIARM 範本來管理 NSG 流量記錄。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶

  • 深入解析提供者。 如需詳細資訊,請參閱 Register Insights 提供者

  • 網路安全組。 如果您需要建立網路安全組,請參閱 建立、變更或刪除網路安全組

  • Azure 儲存體帳戶。 如果您需要建立記憶體帳戶,請參閱 使用 PowerShell 建立記憶體帳戶。

  • 安裝在本機的 Azure Cloud Shell 或 Azure CLI。

    • 本文中的步驟會在 Azure Cloud Shell以互動方式執行 Azure CLI 命令。 若要在 Cloud Shell 中執行命令,請選取程式代碼區塊右上角的 [ 開啟 Cloud Shell ]。 選取 [複製] 以複製程式碼,然後將其貼入 Cloud Shell 以執行。 您也可以從 Azure 入口網站內執行 Cloud Shell。

    • 您也可以 在本機 安裝 Azure CLI 來執行命令。 如果您在本機執行 Azure CLI,請使用 az login 命令登入 Azure。

註冊深入解析提供者

必須註冊 Microsoft.Insights 提供者,才能成功記錄流經網路安全組的流量。 如果您不確定是否已 註冊 Microsoft.Insights 提供者,請使用 az provider register 來註冊它。

# Register Microsoft.Insights provider.
az provider register --namespace 'Microsoft.Insights'

建立流程記錄檔

使用 az network watcher flow-log create 建立流程記錄。 流程記錄檔會在 網路監看員 預設資源群組 NetworkWatcherRG 中建立。

# Create a version 1 NSG flow log.
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount'

注意

  • 如果記憶體帳戶位於不同的訂用帳戶中,網路安全組和記憶體帳戶必須與相同的 Azure Active Directory 租使用者相關聯。 您用於每個訂用帳戶的 帳戶必須具有必要的許可權
  • 如果記憶體帳戶位於不同的資源群組或訂用帳戶中,您必須指定記憶體帳戶的完整標識碼,而不是只指定其名稱。 例如,如果 my 儲存體 Account 記憶體帳戶位於名為 儲存體 RG 的資源群組中,而網路安全組位於資源群組 myResourceGroup 中,則必須使用 /subscriptions/{SubscriptionID}/resourceGroups/RG-Storage/providers/Microsoft.Storage/storageAccounts/myStorageAccount 參數--storage-account,而不是 myStorageAccount
# Place the storage account resource ID into a variable.
sa=$(az storage account show --name 'myStorageAccount' --query 'id' --output 'tsv')

# Create a version 1 NSG flow log (the storage account is in a different resource group).
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account $sa

建立流程記錄和使用分析工作區

  1. 使用 az monitor log-analytics workspace create 建立 Log Analytics 工作區。

    # Create a Log Analytics workspace.
    az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'
    
  2. 使用 az network watcher flow-log create 建立流程記錄。 流程記錄會在 網路監看員 默認資源群組 NetworkWatcherRG 中建立。

    # Create a version 1 NSG flow log and enable traffic analytics for it.
    az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'true' --workspace 'myWorkspace'
    

注意

  • 記憶體帳戶不能有網路規則,只能將網路存取限制為 Microsoft 服務 或特定虛擬網路。
  • 如果記憶體帳戶位於不同的訂用帳戶中,網路安全組和記憶體帳戶必須與相同的 Azure Active Directory 租使用者相關聯。 您用於每個訂用帳戶的 帳戶必須具有必要的許可權
  • 如果記憶體帳戶位於不同的資源群組或訂用帳戶中,則必須使用記憶體帳戶的完整標識符。 例如,如果 my 儲存體 Account 記憶體帳戶位於名為 儲存體 RG 的資源群組中,而網路安全組位於資源群組 myResourceGroup 中,則必須使用 /subscriptions/{SubscriptionID}/resourceGroups/RG-Storage/providers/Microsoft.Storage/storageAccounts/myStorageAccount 參數--storage-account,而不是 myStorageAccount
# Place the storage account resource ID into a variable.
sa=$(az storage account show --name 'myStorageAccount' --query 'id' --output 'tsv')

# Create a Log Analytics workspace.
az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'

# Create a version 1 NSG flow log and enable traffic analytics for it (the storage account is in a different resource group).
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account $sa --traffic-analytics 'true' --workspace 'myWorkspace'

變更流程記錄

您可以使用 az network watcher flow-log update 來變更流程記錄的屬性。 例如,您可以變更流量記錄版本或停用使用分析。

# Update the flow log.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'false' --log-version '2'

列出區域中的所有流程記錄

使用 az network watcher flow-log list 來列出您訂用帳戶中特定區域中的所有 NSG 流量記錄資源。

# Get all NSG flow logs in East US region.
az network watcher flow-log list --location 'eastus' --out table

檢視流量記錄資源的詳細數據

使用 az network watcher flow-log show 來查看流量記錄資源的詳細數據。

# Get the details of a flow log.
az network watcher flow-log show --name 'myFlowLog' --resource-group 'NetworkWatcherRG' --location 'eastus'

下載流程記錄檔

流程記錄的儲存位置定義於建立時。 若要從記憶體帳戶存取和下載流量記錄,您可以使用 Azure 儲存體 Explorer。 如需詳細資訊,請參閱開始使用 儲存體總管

儲存至記憶體帳戶的 NSG 流量記錄檔會遵循下列路徑:

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{NetworkSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

如需流量記錄結構的相關信息,請參閱 NSG 流量記錄的記錄格式。

停用流程記錄

若要暫時停用流程記錄,而不刪除它,請使用 az network watcher flow-log update 命令。 停用流量記錄會停止相關聯網路安全組的流量記錄。 不過,流量記錄資源會保留其所有設定和關聯。 您可以隨時重新啟用它,以繼續已設定網路安全組的流程記錄。

注意

如果流量記錄已啟用使用分析,則必須先停用流量記錄,才能停用流量記錄。

# Disable traffic analytics log if it's enabled.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'false' --workspace 'myWorkspace'

# Disable the flow log.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --enabled 'false'

刪除流程記錄

若要永久刪除流程記錄,請使用 az network watcher flow-log delete 命令。 刪除流程記錄會刪除其所有設定和關聯。 若要針對相同的網路安全組再次開始流程記錄,您必須為其建立新的流量記錄。

# Delete the flow log.
az network watcher flow-log delete --name 'myFlowLog' --location 'eastus' --no-wait 'true'

注意

刪除流量記錄不會從記憶體帳戶刪除流量記錄數據。 儲存在記憶體帳戶中的流量記錄數據會遵循已設定的保留原則。

下一步

  • 若要瞭解如何使用 Azure 內建原則來稽核或部署 NSG 流量記錄,請參閱使用 Azure 原則 管理 NSG 流量記錄。
  • 若要瞭解使用分析,請參閱 使用分析