Condividi tramite


Gestire i log dei flussi dei gruppi di sicurezza di rete usando l'API REST

Importante

Il 30 settembre 2027 i log dei flussi del gruppo di sicurezza di rete (NSG) verranno ritirati. Come parte di questo ritiro, non sarà più possibile creare nuovi log dei flussi del gruppo di sicurezza di rete a partire dal 30 giugno 2025. È consigliabile la migrazione ai log dei flussi della rete virtuale, che superano le limitazioni dei log dei flussi del gruppo di sicurezza di rete. Dopo la data di ritiro, l'analisi del traffico abilitata con i log dei flussi del gruppo di sicurezza di rete non sarà più supportata e le risorse dei log dei flussi del gruppo di sicurezza di rete esistenti nelle sottoscrizioni verranno eliminate. Tuttavia, i record dei log dei flussi del gruppo di sicurezza di rete non verranno eliminati e continueranno a seguire i rispettivi criteri di conservazione. Per altre informazioni, consultare l'annuncio ufficiale.

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 sui log dei flussi dei gruppi di sicurezza di rete, vedere Panoramica dei log dei flussi NSG.

L’articolo illustra come usare l’API REST per abilitare, disabilitare ed eseguire query sui log dei flussi tramite l'API REST. È possibile imparare a gestire un log dei flussi NSG usando il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o il modello di ARM.

Questo articolo illustra come:

  • Abilitare i log di flusso (versione 2)
  • Disabilitare i log di flusso
  • Eseguire query per lo stato dei log di flusso

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
  • ARMClient. ARMClient è uno strumento da riga di comando semplice per richiamare l'API di Azure Resource Manager. Per installare lo strumento, vedi ARMClient. Per specifiche dettagliate dell'API REST dei log dei flussi del gruppo di sicurezza di rete, vedere Log dei flussi - API REST

Importante

Quando si effettuano chiamate dell'API REST a Network Watcher, il nome del gruppo di risorse nell'URI della richiesta si riferisce al gruppo di risorse che contiene Network Watcher, anziché alle risorse sulle quali si eseguono le azioni di diagnostica.

Accedere con ARMClient

Accedere ad armclient con le credenziali di Azure.

armclient login

Registrare il provider Insights

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 l’API REST Providers - Register per registrarlo.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"

Abilitare i log dei flussi del gruppo di sicurezza di rete

L'esempio seguente mostra il comando che consente di abilitare i log di flusso versione 2. Per la versione 1, sostituire il campo "version" con "1":

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'true',
    'retentionPolicy' : {
			days: 5,
			enabled: true
		},
    'format': {
        'type': 'JSON',
        'version': 2
    }
	}
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody

La risposta restituita dall'esempio precedente è la seguente:

{
  "targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Nota

Disabilitare i log dei flussi dei gruppi di sicurezza di rete

Usare l'esempio seguente per disabilitare i log di flusso. La chiamata è uguale a quella usata per abilitare i log di flusso, ad eccezione di false che è impostato per la proprietà attivata.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'false',
    'retentionPolicy' : {
			days: 5,
			enabled: true
		},
    'format': {
        'type': 'JSON',
        'version': 2
    }
	}
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody

La risposta restituita dall'esempio precedente è la seguente:

{
  "targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": false,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Nota

Eseguire query sui log di flusso

La seguente chiamata REST esegue una query sullo stato dei log dei flussi in un gruppo di sicurezza di rete.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/queryFlowLogStatus?api-version=2022-11-01" $requestBody

L'esempio seguente mostra la risposta restituita:

{
  "targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
   "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Nota

  • L'API REST Network Watchers - Get Flow Log Status usata nell'esempio precedente richiede un'autorizzazione di letturaaggiuntiva nel gruppo di risorse di Network Watcher. Inoltre, questa API è obsoleta e potrebbe presto essere deprecata.
  • È consigliabile usare la nuova API REST Flow Logs - Get per eseguire query sui log dei flussi.

Scaricare un log di flusso

Il percorso di archiviazione di un log di flusso viene definito al momento della creazione. Uno strumento pratico per accedere ai log dei flussi salvati in un account di archiviazione è Microsoft Azure Storage Explorer. Per altre informazioni, vedere Informazioni di base su Storage Explorer.

Se viene specificato un account di archiviazione, i file di acquisizione di pacchetti vengono salvati in un account di archiviazione nel percorso seguente:

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

Passaggi successivi