Dela via


Hantera NSG-flödesloggar med Azure PowerShell

Flödesloggning för nätverkssäkerhetsgrupp är en funktion i Azure Network Watcher som gör att du kan logga information om IP-trafik som flödar genom en nätverkssäkerhetsgrupp. Mer information om flödesloggning för nätverkssäkerhetsgrupper finns i Översikt över NSG-flödesloggar.

I den här artikeln får du lära dig hur du skapar, ändrar, inaktiverar eller tar bort en NSG-flödeslogg med Azure PowerShell. Du kan lära dig hur du hanterar en NSG-flödeslogg med hjälp av Azure-portalen, Azure CLI, REST API eller ARM-mallen.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.

  • Insights-provider. Mer information finns i Register Insights-providern.

  • En nätverkssäkerhetsgrupp. Om du behöver skapa en nätverkssäkerhetsgrupp kan du läsa Skapa, ändra eller ta bort en nätverkssäkerhetsgrupp.

  • Ett Azure-lagringskonto. Om du behöver skapa ett lagringskonto kan du läsa skapa ett lagringskonto med PowerShell.

  • Azure Cloud Shell eller Azure PowerShell installerat lokalt.

    • Stegen i den här artikeln kör Azure PowerShell-cmdletarna interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloud Shell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra sedan in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell från Azure-portalen.

    • Du kan också installera Azure PowerShell lokalt för att köra cmdletarna. Den här artikeln kräver Az PowerShell-modulen. Mer information finns i Installera Azure PowerShell. Kör Get-InstalledModule -Name Az för att hitta den installerade versionen. Om du kör PowerShell lokalt loggar du in på Azure med cmdleten Anslut-AzAccount.

Registrera insights-provider

Microsoft.Insights-providern måste vara registrerad för att kunna logga trafik som flödar via en nätverkssäkerhetsgrupp. Om du inte är säker på om Microsoft.Insights-providern är registrerad använder du Register-AzResourceProvider för att registrera den.

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

Skapa en flödeslogg

  1. Hämta egenskaperna för den nätverkssäkerhetsgrupp som du vill skapa flödesloggen för och det lagringskonto som du vill använda för att lagra den skapade flödesloggen med hjälp av Get-AzNetworkSecurityGrouprespektive Get-AzStorageAccount .

    # 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'
    

    Kommentar

    • Om lagringskontot finns i en annan prenumeration måste nätverkssäkerhetsgruppen och lagringskontot associeras med samma Azure Active Directory-klientorganisation. Det konto som du använder för varje prenumeration måste ha nödvändiga behörigheter.
  2. Skapa flödesloggen med New-AzNetworkWatcherFlowLog. Flödesloggen skapas i nätverksbevakarens standardresursgrupp NetworkWatcherRG.

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

Skapa en arbetsyta för flödesloggar och trafikanalyser

  1. Hämta egenskaperna för den nätverkssäkerhetsgrupp som du vill skapa flödesloggen för och det lagringskonto som du vill använda för att lagra den skapade flödesloggen med hjälp av Get-AzNetworkSecurityGrouprespektive Get-AzStorageAccount .

    # 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'
    

    Kommentar

    • Lagringskontot kan inte ha nätverksregler som begränsar nätverksåtkomsten till endast Microsoft-tjänster eller specifika virtuella nätverk.
    • Om lagringskontot finns i en annan prenumeration måste nätverkssäkerhetsgruppen och lagringskontot associeras med samma Azure Active Directory-klientorganisation. Det konto som du använder för varje prenumeration måste ha nödvändiga behörigheter.
  2. Skapa en arbetsyta för trafikanalys med New-AzOperationalInsightsWorkspace.

    # Create a traffic analytics workspace and place its properties into a variable.
    $workspace = New-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
    
  3. Skapa flödesloggen med New-AzNetworkWatcherFlowLog. Flödesloggen skapas i nätverksbevakarens standardresursgrupp NetworkWatcherRG.

    # 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
    

Ändra en flödeslogg

Du kan använda Set-AzNetworkWatcherFlowLog för att ändra egenskaperna för en flödeslogg. Du kan till exempel ändra flödesloggversionen eller inaktivera trafikanalys.

# 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 

Visa en lista över alla flödesloggar i en region

Använd Get-AzNetworkWatcherFlowLog för att visa alla NSG-flödesloggresurser i en viss region i din prenumeration.

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

Kommentar

Om du vill använda parametern -Location med Get-AzNetworkWatcherFlowLog cmdlet behöver du ytterligare behörigheten Läsare i resursgruppen NetworkWatcherRG .

Visa information om en flödesloggresurs

Använd Get-AzNetworkWatcherFlowLog för att se information om en flödesloggresurs.

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

Kommentar

Om du vill använda parametern -Location med Get-AzNetworkWatcherFlowLog cmdlet behöver du ytterligare behörigheten Läsare i resursgruppen NetworkWatcherRG .

Ladda ned en flödeslogg

Lagringsplatsen för en flödeslogg definieras när den skapas. Om du vill komma åt och ladda ned flödesloggar från ditt lagringskonto kan du använda Azure Storage Explorer. Mer information finns i Komma igång med Storage Explorer.

NSG-flödesloggfiler som sparats på ett lagringskonto följer den här sökvägen:

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

Information om strukturen för en flödeslogg finns i Loggformat för NSG-flödesloggar.

Inaktivera en flödeslogg

Om du tillfälligt vill inaktivera en flödeslogg utan att ta bort den använder du Set-AzNetworkWatcherFlowLog med parametern -Enabled $false . Om du inaktiverar en flödeslogg stoppas flödesloggningen för den associerade nätverkssäkerhetsgruppen. Flödesloggresursen finns dock kvar med alla inställningar och associationer. Du kan återaktivera den när som helst för att återuppta flödesloggningen för den konfigurerade nätverkssäkerhetsgruppen.

Kommentar

Om trafikanalys är aktiverat för en flödeslogg måste den inaktiveras innan du kan inaktivera flödesloggen.

# 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

Ta bort en flödeslogg

Om du vill ta bort en NSG-flödeslogg permanent använder du kommandot Remove-AzNetworkWatcherFlowLog . Om du tar bort en flödeslogg tas alla inställningar och associationer bort. Om du vill börja flödesloggningen igen för samma nätverkssäkerhetsgrupp måste du skapa en ny flödeslogg för den.

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

Kommentar

Om du tar bort en flödeslogg tas inte flödesloggdata bort från lagringskontot. Flödesloggdata som lagras i lagringskontot följer den konfigurerade kvarhållningsprincipen.