Hantera NSG-flödesloggar med hjälp av REST API
Viktigt!
Den 30 september 2027 dras nätverkssäkerhetsgruppens flödesloggar tillbaka. Som en del av den här tillbakadragningen kommer du inte längre att kunna skapa nya NSG-flödesloggar från och med den 30 juni 2025. Vi rekommenderar att du migrerar till flödesloggar för virtuella nätverk, vilket övervinner begränsningarna i NSG-flödesloggar. Efter slutdatumet stöds inte längre trafikanalys som är aktiverad med NSG-flödesloggar, och befintliga NSG-flödesloggresurser i dina prenumerationer tas bort. NSG-flödesloggposter tas dock inte bort och fortsätter att följa deras respektive kvarhållningsprinciper. Mer information finns i det officiella meddelandet.
Flödesloggning för nätverkssäkerhetsgrupp är en funktion i Azure Network Watcher som gör att du kan logga information om IP-trafik som flödar genom en nätverkssäkerhetsgrupp. Mer information om flödesloggning för nätverkssäkerhetsgrupper finns i Översikt över NSG-flödesloggar.
Den här artikeln visar hur du använder REST-API:et för att aktivera, inaktivera och köra frågor mot flödesloggar med hjälp av REST-API:et. Du kan lära dig hur du hanterar en NSG-flödeslogg med hjälp av mallen Azure Portal, PowerShell, Azure CLI eller ARM.
I den här artikeln får du lära dig hur du:
- Aktivera flödesloggar (version 2)
- Inaktivera flödesloggar
- Status för frågeflödesloggar
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- ARMClient. ARMClient är ett enkelt kommandoradsverktyg för att anropa Azure Resource Manager-API:et. Information om hur du installerar verktyget finns i ARMClient. Detaljerade specifikationer för REST API för NSG-flödesloggar finns i Flödesloggar – REST API
Viktigt!
När du gör REST API-anrop till Network Watcher refererar resursgruppens namn i begärande-URI:n till resursgruppen som innehåller Network Watcher, inte de resurser som du utför diagnostikåtgärderna på.
Logga in med ARMClient
Logga in på armclient med dina Azure-autentiseringsuppgifter.
armclient login
Registrera Insights-providern
Microsoft.Insights-providern måste vara registrerad för att kunna logga trafik som flödar via en nätverkssäkerhetsgrupp. Om du inte är säker på om Microsoft.Insights-providern är registrerad använder du Providers – Registrera REST API för att registrera den.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
Aktivera NSG-flödesloggar
Kommandot för att aktivera flödesloggar version 2 visas i följande exempel. För version 1 ersätter du fältet "version" med "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
Svaret som returneras från föregående exempel är följande:
{
"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
}
}
}
Kommentar
- Rest-API:et för konfiguration av flödesloggar som användes i föregående exempel är gammalt och kan snart vara inaktuellt.
- Vi rekommenderar att du använder de nya flödesloggarna – Skapa eller uppdatera REST API för att skapa eller uppdatera flödesloggar.
Inaktivera NSG-flödesloggar
Använd följande exempel för att inaktivera flödesloggar. Anropet är detsamma som att aktivera flödesloggar, förutom att false har angetts för den aktiverade egenskapen.
$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
Svaret som returneras från föregående exempel är följande:
{
"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
}
}
}
Kommentar
- Rest-API:et för konfiguration av flödesloggar som användes i föregående exempel är gammalt och kan snart vara inaktuellt.
- Vi rekommenderar att du använder de nya flödesloggarna – Skapa eller uppdatera REST API för att inaktivera flödesloggar och flödesloggar – Ta bort REST API för att ta bort resursen för flödesloggar.
Frågeflödesloggar
Följande REST-anrop frågar statusen för flödesloggar i en nätverkssäkerhetsgrupp.
$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
I följande exempel visas svaret som returneras:
{
"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
}
}
}
Kommentar
- Network Watchers – Get Flow Log Status REST API (Hämta flödesloggstatus ) som användes i föregående exempel kräver ytterligare läsbehörighet i resursgruppen för nätverksbevakaren. Dessutom är det här API:et gammalt och kan snart vara inaktuellt.
- Vi rekommenderar att du använder de nya flödesloggarna – Hämta REST API för att köra frågor mot flödesloggar.
Ladda ned en flödeslogg
Lagringsplatsen för en flödeslogg definieras när den skapas. Ett praktiskt verktyg för att komma åt flödesloggar som sparats på ett lagringskonto är Microsoft Azure Storage Explorer. Mer information finns i Kom igång med Storage Explorer.
Om ett lagringskonto anges sparas paketinsamlingsfiler till ett lagringskonto på följande plats:
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
Nästa steg
- Information om hur du använder inbyggda Azure-principer för att granska eller distribuera NSG-flödesloggar finns i Hantera NSG-flödesloggar med Azure Policy.
- Mer information om trafikanalys finns i Trafikanalys.