Verwalten von NSG-Datenflussprotokollen mit Azure PowerShell

Wichtig

Am 30. September 2027 werden NSG-Datenflussprotokolle (Netzwerksicherheitsgruppe) eingestellt. Aufgrund dieser Einstellung können Sie ab dem 30. Juni 2025 keine neuen NSG-Datenflussprotokolle mehr erstellen. Es wird empfohlen, zu Datenflussprotokollen für virtuelle Netzwerke zu migrieren, bei denen die Einschränkungen von NSG-Datenflussprotokollen nicht gelten. Nach dem Einstellungsdatum wird die Aktivierung der Datenverkehrsanalyse mit NSG-Datenflussprotokollen nicht mehr unterstützt, und vorhandene Ressourcen für NSG-Datenflussprotokolle in Ihren Abonnements werden gelöscht. NSG-Datenflussprotokolle werden jedoch nicht gelöscht, und es gelten weiterhin die jeweiligen Aufbewahrungsrichtlinien. Weitere Informationen finden Sie in der offiziellen Ankündigung.

Die Datenflussprotokollierung für Netzwerksicherheitsgruppen ist ein Feature von Azure Network Watcher, mit dem Sie Informationen zu IP-Datenverkehr protokollieren können, der eine Netzwerksicherheitsgruppe durchläuft. Weitere Informationen zur Datenflussprotokollierung für Netzwerksicherheitsgruppen finden Sie unter Übersicht über NSG-Datenflussprotokolle.

In diesem Artikel erfahren Sie, wie Sie mithilfe von Azure PowerShell ein NSG-Datenflussprotokoll erstellen, ändern, deaktivieren oder löschen. Sie erfahren, wie Sie ein NSG-Flussprotokoll mithilfe des Azure-Portals, der Azure CLI, der REST-API oder der ARM-Vorlage verwalten.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

  • Insights-Anbieter. Weitere Informationen finden Sie unter Registrieren von Insights-Anbietern.

  • Eine Netzwerksicherheitsgruppe Weitere Informationen zum Erstellen einer Netzwerksicherheitsgruppe finden Sie unter Erstellen, Ändern oder Löschen einer Netzwerksicherheitsgruppe.

  • Ein Azure-Speicherkonto. Informationen zum Erstellen eines Speicherkontos finden Sie unter Speicherkonto erstellen.

  • Lokale Installation von Azure Cloud Shell oder Azure PowerShell.

    • Die Schritte in diesem Artikel führen die Azure PowerShell Cmdlets interaktiv in Azure Cloud Shell aus. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.

    • Sie können Azure PowerShell auch lokal installieren, um die Cmdlets auszuführen. Für diesen Artikel ist das Az PowerShell-Modul erforderlich. Weitere Informationen finden Sie unter Installieren von Azure PowerShell. Führen Sie Get-InstalledModule -Name Az aus, um die installierte Version zu ermitteln. Melden Sie sich bei Azure mit dem Cmdlet Connect-AzAccount an, wenn Sie PowerShell lokal ausführen.

Registrieren von Insights-Anbietern

Der Microsoft.Insights-Anbieter muss registriert sein, um den Datenverkehr, der eine Netzwerksicherheitsgruppe durchläuft, erfolgreich protokollieren zu können. Wenn Sie nicht sicher sind, ob der Microsoft.Insights-Anbieter registriert ist, verwenden Sie Register-AzResourceProvider, um ihn zu registrieren.

# Register Microsoft.Insights provider.
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Insights'

Erstellen eines Datenflussprotokolls

  1. Rufen Sie die Eigenschaften der Netzwerksicherheitsgruppe, für die Sie das Datenflussprotokoll erstellen möchten, und des Speicherkontos, das Sie zum Speichern des erstellten Datenflussprotokolls verwenden möchten, mithilfe von Get-AzNetworkSecurityGroup bzw. Get-AzStorageAccount ab.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    Hinweis

    • Wenn das Speicherkonto sich in einem anderen Abonnement befindet, müssen die Netzwerksicherheitsgruppe und das Speicherkonto demselben Azure Active Directory-Mandanten zugeordnet sein. Die für die beiden Abonnements verwendeten Konten müssen über die erforderlichen Berechtigungen verfügen.
  2. Erstellen Sie das Datenflussprotokoll mit New-AzNetworkWatcherFlowLog. Das Datenflussprotokoll wird in der Network Watcher-Standardressourcengruppe NetworkWatcherRG erstellt.

    # Create a version 1 NSG flow log.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true
    

Erstellen eines Datenflussprotokolls und eines Arbeitsbereichs für die Datenverkehrsanalyse

  1. Rufen Sie die Eigenschaften der Netzwerksicherheitsgruppe, für die Sie das Datenflussprotokoll erstellen möchten, und des Speicherkontos, das Sie zum Speichern des erstellten Datenflussprotokolls verwenden möchten, mithilfe von Get-AzNetworkSecurityGroup bzw. Get-AzStorageAccount ab.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    Hinweis

    • Das Speicherkonto darf keine Netzwerkregeln aufweisen, die den Netzwerkzugriff nur auf Microsoft-Dienste oder bestimmte virtuelle Netzwerke beschränken.
    • Wenn das Speicherkonto sich in einem anderen Abonnement befindet, müssen die Netzwerksicherheitsgruppe und das Speicherkonto demselben Azure Active Directory-Mandanten zugeordnet sein. Die für die beiden Abonnements verwendeten Konten müssen über die erforderlichen Berechtigungen verfügen.
  2. Erstellen Sie mit New-AzOperationalInsightsWorkspace einen Arbeitsbereich für die Datenverkehrsanalyse.

    # Create a traffic analytics workspace and place its properties into a variable.
    $workspace = New-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
    
  3. Erstellen Sie das Datenflussprotokoll mit New-AzNetworkWatcherFlowLog. Das Datenflussprotokoll wird in der Network Watcher-Standardressourcengruppe NetworkWatcherRG erstellt.

    # Create a version 1 NSG flow log with traffic analytics.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId
    

Ändern eines Datenflussprotokolls

Sie können Set-AzNetworkWatcherFlowLog verwenden, um die Eigenschaften eines Datenflussprotokolls zu ändern. Beispielsweise können Sie die Version des Datenflussprotokolls ändern oder die Datenverkehrsanalyse deaktivieren.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -FormatVersion 2 

Auflisten aller Datenflussprotokolle in einer Region

Verwenden Sie Get-AzNetworkWatcherFlowLog, um alle NSG-Datenflussprotokollressourcen in einer bestimmten Region in Ihrem Abonnement aufzulisten.

# Get all NSG flow logs in East US region.
Get-AzNetworkWatcherFlowLog -Location 'eastus' | format-table Name

Hinweis

Um den -Location-Parameter mit dem Get-AzNetworkWatcherFlowLog-Cmdlet verwenden zu können, benötigen Sie zusätzlich eine Berechtigung als Leser in der NetworkWatcherRG-Ressourcengruppe.

Anzeigen von Details einer Datenflussprotokollressource

Verwenden Sie Get-AzNetworkWatcherFlowLog, um Details zu einer Datenflussprotokollressource anzuzeigen.

# Get the details of a flow log.
Get-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

Hinweis

Um den -Location-Parameter mit dem Get-AzNetworkWatcherFlowLog-Cmdlet verwenden zu können, benötigen Sie zusätzlich eine Berechtigung als Leser in der NetworkWatcherRG-Ressourcengruppe.

Herunterladen eines Flowprotokolls

Bei der Erstellung wird der Speicherort eines Flowprotokolls definiert. Sie können Azure Storage-Explorer verwenden, um auf Datenflussprotokolle in Ihrem Speicherkonto zuzugreifen und diese herunterzuladen. Weitere Informationen finden Sie unter Erste Schritte mit Storage-Explorer.

NSG-Datenflussprotokoll-Dateien werden unter dem folgenden Pfad in einem Speicherkonto gespeichert:

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

Informationen zur Struktur eines Datenflussprotokolls finden Sie unter Protokollformat von NSG-Datenflussprotokollen.

Deaktivieren eines Datenflussprotokolls

Um ein Datenflussprotokoll vorübergehend zu deaktivieren, ohne es zu löschen, verwenden Sie Set-AzNetworkWatcherFlowLog mit dem Parameter -Enabled $false. Durch das Deaktivieren eines Datenflussprotokolls wird die Datenflussprotokollierung für die zugeordnete Netzwerksicherheitsgruppe beendet. Die Datenflussprotokoll-Ressource bleibt jedoch mit all ihren Einstellungen und Zuordnungen erhalten. Sie können das Datenflussprotokoll jederzeit wieder aktivieren, um mit der Datenflussprotokollierung für die konfigurierte Netzwerksicherheitsgruppe fortzufahren.

Hinweis

Wenn die Datenverkehrsanalyse für ein Datenflussprotokoll aktiviert ist, muss sie deaktiviert werden, bevor Sie das Datenflussprotokoll deaktivieren können.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id

Löschen eines Datenflussprotokolls

Verwenden Sie den Befehl Remove-AzNetworkWatcherFlowLog, um ein NSG-Datenflussprotokoll dauerhaft zu löschen. Beim Löschen eines Datenflussprotokolls werden alle zugehörigen Einstellungen und Zuordnungen gelöscht. Wenn Sie für die gleiche Netzwerksicherheitsgruppe wieder mit der Datenflussprotokollierung beginnen möchten, muss eine neue Datenflussprotokoll-Ressource erstellt werden.

# Delete the flow log.
Remove-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

Hinweis

Beim Löschen eines Datenflussprotokolls werden die Daten des Datenflussprotokolls nicht aus dem Speicherkonto gelöscht. Für die Daten des Datenflussprotokolls, die im Speicherkonto gespeichert sind, gilt die konfigurierte Aufbewahrungsrichtlinie.