Gestire i log dei flussi NSG usando l'API REST
Importante
Il 30 settembre 2027 i log dei flussi del gruppo di sicurezza di rete (NSG) verranno ritirati. Nell'ambito di questa disattivazione, non sarà più possibile creare nuovi log di flusso NSG a partire dal 30 giugno 2025. Raccomandiamo la migrazione ai log dei flussi di 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 NSG (gruppo di sicurezza di rete) non sarà più supportata, e le risorse esistenti dei log dei flussi del NSG nelle vostre sottoscrizioni verranno eliminate. Tuttavia, i record dei log dei flussi NSG non verranno eliminati e continueranno a seguire le rispettive politiche di conservazione. Per altre informazioni, vedere 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 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 usare l'API REST per abilitare, disabilitare ed eseguire query sui log dei flussi usando l'API REST. Puoi imparare come gestire un log del flusso NSG utilizzando il portale di Azure , PowerShell, Azure CLI, oppure il modello ARM .
In questo articolo si apprenderà come:
- Abilitare i log dei flussi (versione 2)
- Disabilitare i log dei flussi
- Stato dei log del flusso di query
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Crea un account gratuitamente.
- ARMClient. ARMClient è uno strumento da riga di comando semplice per richiamare l'API di Azure Resource Manager. Per installare lo strumento, vedere ARMClient. Per specifiche dettagliate dell'API REST dei log di flusso del NSG, vedere Log di flusso - API REST
Importante
Quando si effettuano chiamate API REST a Network Watcher, il nome del gruppo di risorse nell'URI della richiesta fa riferimento al gruppo di risorse che contiene Network Watcher, non alle risorse in cui vengono eseguite le azioni di diagnostica.
Accedere con ARMClient
Accedere a armclient con le credenziali di Azure.
armclient login
Registrare il provider di Insights
Il provider Microsoft.Insights deve essere registrato per registrare con successo il traffico che scorre attraverso un gruppo di sicurezza di rete. Se non si è certi che il provider Microsoft.Insights sia registrato, utilizzare la REST API di 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 NSG
Il comando per abilitare i log di flusso versione 2 è illustrato nell'esempio seguente. 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
- Il Network Watchers - la configurazione del log dei flussi impostata tramite l'API REST utilizzata nell'esempio precedente è obsoleta e potrebbe essere presto deprecata.
- È consigliabile usare la nuova Flow Logs - Create Or Update REST API per creare o aggiornare i log dei flussi.
Disabilitare i log dei flussi del gruppo di sicurezza di rete
Usare l'esempio seguente per disabilitare i log di flusso. La chiamata equivale all'abilitazione dei log di flusso, tranne che la proprietà enabled è impostata su false.
$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
- Il Network Watchers - l'API REST per impostare la configurazione del log dei flussi utilizzata nell'esempio precedente è vecchia e potrebbe essere presto deprecata.
- È consigliabile usare il nuovo log dei flussi di - Creare o aggiornare API REST per disabilitare i log di flusso e i log dei flussi - Eliminare API REST per eliminare la risorsa dei log di flusso.
Log del flusso di query
La chiamata REST seguente 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
- I Network Watchers - ottenere lo stato del log dei flussi dell'API REST, usata nell'esempio precedente, richiede un'autorizzazione aggiuntiva di lettore nel gruppo di risorse dell'osservatore di rete. Inoltre, questa API è obsoleta e potrebbe presto essere deprecata.
- È consigliabile utilizzare i nuovi log dei flussi - API REST per eseguire query sui log dei flussi.
Scaricare un log di flusso
La posizione di archiviazione di un log di flusso viene definita 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 Introduzione a Storage Explorer.
Se si specifica un account di archiviazione, i file di acquisizione 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
- Per informazioni su come usare i criteri predefiniti di Azure per controllare o distribuire i log dei flussi dei gruppi di sicurezza di rete, vedere Gestire i log dei flussi dei gruppi di sicurezza di rete usando Criteri di Azure.
- Per informazioni sull'analisi del traffico, vedere Analisi del traffico.