Gestire i log dei flussi dei gruppi di sicurezza di rete con Azure PowerShell

La registrazione dei flussi dei gruppi di sicurezza di rete è una funzionalità di Azure Network Watcher che consente di registrare informazioni sul traffico IP che scorre attraverso un gruppo di sicurezza di rete. Per altre informazioni sulla registrazione dei flussi dei gruppi di sicurezza di rete, vedere Panoramica dei log dei flussi del gruppo di sicurezza di rete.

Questo articolo illustra come creare, modificare, disabilitare o eliminare un log del flusso del gruppo di sicurezza di rete usando Azure PowerShell. È possibile imparare a gestire un log del flusso del gruppo di sicurezza di rete usando il modello portale di Azure, l'interfaccia della riga di comando di Azure, l'API REST o ARM.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.

  • Provider insights. Per altre informazioni, vedere Registrare il provider di Insights.

  • Gruppo di sicurezza di rete. Se è necessario creare un gruppo di sicurezza di rete, vedere Creare, modificare o eliminare un gruppo di sicurezza di rete.

  • Un account di archiviazione di Azure. Se è necessario creare un account di archiviazione, vedere Creare un account di archiviazione con PowerShell.

  • Azure Cloud Shell o Azure PowerShell installato in locale.

    • I passaggi descritti in questo articolo eseguono i cmdlet di Azure PowerShell in modo interattivo in Azure Cloud Shell. Per eseguire i comandi in Cloud Shell, selezionare Apri Cloud Shell nell'angolo superiore destro di un blocco di codice. Selezionare Copia per copiare il codice e incollarlo in Cloud Shell per eseguirlo. È anche possibile eseguire Cloud Shell dal portale di Azure.

    • È anche possibile installare Azure PowerShell in locale per eseguire i cmdlet. Questo articolo richiede il modulo Az PowerShell. Per altre informazioni, vedere Come installare Azure PowerShell. Per trovare la versione installata, eseguire Get-InstalledModule -Name Az. Se si esegue PowerShell in locale, accedere ad Azure usando il cmdlet Connessione-AzAccount.

Registrare il provider di informazioni dettagliate

Il provider Microsoft.Insights deve essere registrato per registrare correttamente il traffico che scorre attraverso un gruppo di sicurezza di rete. Se non si è certi che il provider Microsoft.Insights sia registrato, usare Register-AzResourceProvider per registrarlo.

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

Creare un log di flusso

  1. Ottenere le proprietà del gruppo di sicurezza di rete per cui si vuole creare il log del flusso e l'account di archiviazione da usare per archiviare il log del flusso creato usando rispettivamente Get-AzNetworkSecurityGroup e Get-Az Archiviazione Account.

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

    Nota

    • Se l'account di archiviazione si trova in una sottoscrizione diversa, il gruppo di sicurezza di rete e l'account di archiviazione devono essere associati allo stesso tenant di Azure Active Directory. L'account usato per ogni sottoscrizione deve avere le autorizzazioni necessarie.
  2. Creare il log del flusso usando New-AzNetworkWatcherFlowLog. Il log del flusso viene creato nel gruppo di risorse predefinito NetworkWatcherRG di Network Watcher.

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

Creare un log di flusso e un'area di lavoro analisi del traffico

  1. Ottenere le proprietà del gruppo di sicurezza di rete per cui si vuole creare il log del flusso e l'account di archiviazione da usare per archiviare il log del flusso creato usando rispettivamente Get-AzNetworkSecurityGroup e Get-Az Archiviazione Account.

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

    Nota

    • L'account di archiviazione non può avere regole di rete che limitano l'accesso di rete solo a servizi Microsoft o a reti virtuali specifiche.
    • Se l'account di archiviazione si trova in una sottoscrizione diversa, il gruppo di sicurezza di rete e l'account di archiviazione devono essere associati allo stesso tenant di Azure Active Directory. L'account usato per ogni sottoscrizione deve avere le autorizzazioni necessarie.
  2. Creare un'area di lavoro di analisi del traffico usando New-AzOperationalInsightsWorkspace.

    # Create a traffic analytics workspace and place its properties into a variable.
    $workspace = New-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
    
  3. Creare il log del flusso usando New-AzNetworkWatcherFlowLog. Il log del flusso viene creato nel gruppo di risorse predefinito NetworkWatcherRG di Network Watcher.

    # 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
    

Modificare un log di flusso

È possibile usare Set-AzNetworkWatcherFlowLog per modificare le proprietà di un log di flusso. Ad esempio, è possibile modificare la versione del log del flusso o disabilitare l'analisi del traffico.

# 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 

Elencare tutti i log di flusso in un'area

Usare Get-AzNetworkWatcherFlowLog per elencare tutte le risorse del log del flusso del gruppo di sicurezza di rete in una determinata area della sottoscrizione.

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

Nota

Per usare il parametro con Get-AzNetworkWatcherFlowLog il -Location cmdlet, è necessaria un'autorizzazione Lettore aggiuntiva nel gruppo di risorse NetworkWatcherRG.

Visualizzare i dettagli di una risorsa del log del flusso

Usare Get-AzNetworkWatcherFlowLog per visualizzare i dettagli di una risorsa del log del flusso.

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

Nota

Per usare il parametro con Get-AzNetworkWatcherFlowLog il -Location cmdlet, è necessaria un'autorizzazione Lettore aggiuntiva nel gruppo di risorse NetworkWatcherRG.

Scaricare un log di flusso

Il percorso di archiviazione di un log di flusso viene definito al momento della creazione. Per accedere e scaricare i log dei flussi dall'account di archiviazione, è possibile usare Archiviazione di Azure Explorer. Per altre informazioni, vedere Introduzione a Archiviazione Explorer.

I file di log del flusso del gruppo di sicurezza di rete salvati in un account di archiviazione seguono questo percorso:

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

Per informazioni sulla struttura di un log di flusso, vedere Formato di log dei log dei flussi del gruppo di sicurezza di rete.

Disabilitare un log di flusso

Per disabilitare temporaneamente un log di flusso senza eliminarlo, usare Set-AzNetworkWatcherFlowLog con il -Enabled $false parametro . La disabilitazione di un log di flusso arresta la registrazione dei flussi per il gruppo di sicurezza di rete associato. Tuttavia, la risorsa del log del flusso rimane con tutte le relative impostazioni e associazioni. È possibile riabilitarlo in qualsiasi momento per riprendere la registrazione del flusso per il gruppo di sicurezza di rete configurato.

Nota

Se l'analisi del traffico è abilitata per un log di flusso, è necessario disabilitarla prima di poter disabilitare il log dei flussi.

# 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

Eliminare un log di flusso

Per eliminare definitivamente un log del flusso del gruppo di sicurezza di rete, usare il comando Remove-AzNetworkWatcherFlowLog . L'eliminazione di un log di flusso elimina tutte le relative impostazioni e associazioni. Per iniziare di nuovo la registrazione del flusso per lo stesso gruppo di sicurezza di rete, è necessario crearne uno nuovo.

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

Nota

L'eliminazione di un log di flusso non comporta l'eliminazione dei dati di log del flusso dall'account di archiviazione. I dati dei log dei flussi archiviati nell'account di archiviazione seguono i criteri di conservazione configurati.

Passaggi successivi