Gestire i log dei flussi dei gruppi di sicurezza di rete usando l'API REST
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. È possibile imparare a gestire un log del flusso del gruppo di sicurezza di rete usando il modello portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o Arm.
In questo articolo si apprenderà 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, vedere 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 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 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 Provider - Registrare l'API REST per registrarla.
$subscriptionId = "00000000-0000-0000-0000-000000000000"
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 = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{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/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": true,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Nota
- L'API REST Di configurazione del log del flusso usata nell'esempio precedente è obsoleta e potrebbe essere presto deprecata.
- È consigliabile usare i nuovi log di flusso: creare o aggiornare l'API REST 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 = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{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/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": false,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Nota
- L'API REST Di configurazione del log del flusso usata nell'esempio precedente è obsoleta e potrebbe essere presto deprecata.
- È consigliabile usare i nuovi log di flusso - Creare o aggiornare l'API REST per disabilitare i log di flusso e l'API REST Flow Logs - Delete per eliminare la risorsa dei log di flusso.
Eseguire query sui log di flusso
La chiamata REST seguente esegue una query sullo stato dei log dei flussi in un gruppo di sicurezza di rete.
$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/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 lettura aggiuntiva nel gruppo di risorse di Network Watcher. Inoltre, questa API è obsoleta e potrebbe presto essere deprecata.
- È consigliabile usare i nuovi log di flusso : ottenere l'API REST 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 di flusso salvati in un account di archiviazione è Archiviazione di Microsoft Azure Explorer. Per altre informazioni, vedere Introduzione a Archiviazione 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 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.