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
- L'API REST Network Watchers - Set Flow Log Configuration usata nell'esempio precedente è obsoleta e potrebbe essere presto deprecata.
- È consigliabile usare la nuova API REST Flow Logs - Create Or Update per creare o aggiornare i log dei flussi.
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
- L'API REST Network Watchers - Set Flow Log Configuration usata nell'esempio precedente è obsoleta e potrebbe essere presto deprecata.
- È consigliabile usare la nuova API REST Flow Logs - Create Or Update per disabilitare i log dei flussi e l'API REST Flow Logs - Delete per eliminare la risorsa dei log dei flussi.
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
- Per informazioni su come usare i criteri predefiniti di Azure per controllare o distribuire i log dei flussi NSG, vedere Gestire i log dei flussi NSG usando Criteri di Azure.
- Per informazioni sull'analisi del traffico, vedere Analisi del traffico.