Správa protokolů toku NSG pomocí rozhraní REST API
Důležitý
30. září 2027 se protokoly toku síťové skupiny zabezpečení (NSG) vyřadí z provozu. V rámci tohoto vyřazení už nebudete moct vytvářet nové protokoly toku NSG od 30. června 2025. Doporučujeme migraci na protokolů toku virtuální sítě, které překončují omezení protokolů toku NSG. Po datu vyřazení se už nebudou podporovat analýzy provozu s protokoly toků NSG a stávající prostředky protokolů toku NSG ve vašich předplatných se odstraní. Záznamy protokolů toku NSG se ale neodstraní a budou dál dodržovat příslušné zásady uchovávání informací. Další informace naleznete v oficiální oznámení.
Protokolování toku dat ve skupině zabezpečení sítě je funkce služby Azure Network Watcher, která umožňuje zaznamenávat informace o provozu IP, který prochází skupinou zabezpečení sítě. Další informace o protokolech toku skupiny síťového zabezpečení najdete v tématu přehled protokolů toku NSG.
V tomto článku se dozvíte, jak pomocí rozhraní REST API povolit, zakázat a dotazovat protokoly toků pomocí rozhraní REST API. Dozvíte se, jak spravovat protokol toku NSG pomocí Azure portálu, PowerShell, Azure CLInebo šablony ARM.
V tomto článku se naučíte:
- Povolení protokolů toku (verze 2)
- Zakázání protokolů toku
- Stav protokolů toku dotazů
Požadavky
- Účet Azure s aktivním předplatným. Vytvořit účet zdarma.
- ARMClient. ARMClient je jednoduchý nástroj příkazového řádku pro vyvolání rozhraní API Azure Resource Manageru. Chcete-li nainstalovat nástroj, podívejte se na ARMClient. Podrobné specifikace protokolů toku NSG - REST API najdete v sekci Flow Logs - REST API
Důležitý
Když provedete volání rozhraní REST API do služby Network Watcher, název skupiny prostředků v identifikátoru URI požadavku odkazuje na skupinu prostředků, která obsahuje Network Watcher, nikoli prostředky, se kterými provádíte diagnostické akce.
Přihlášení pomocí ARMClient
Přihlaste se k armclient pomocí svých přihlašovacích údajů Azure.
armclient login
Registrace poskytovatele Insights
Poskytovatel Microsoft.Insights musí být zaregistrován pro úspěšné protokolování provozu skrze skupinu zabezpečení sítě. Pokud si nejste jistí, zda je poskytovatel Microsoft.Insights zaregistrovaný, použijte k jeho registraci funkci Poskytovatelé – Registr v rámci REST API.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
Povolit protokoly toku NSG
Příkaz pro povolení protokolů toku verze 2 je uvedený v následujícím příkladu. Pro verzi 1 nahraďte pole version za 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
Odpověď vrácená z předchozího příkladu je následující:
{
"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
}
}
}
Poznámka
- Network Watchers – Nastavení protokolu toku REST API použité v předchozím příkladu je staré a může být brzy vyřazeno.
- Doporučujeme použít nové rozhraní REST API Flow Logs – Vytvoření nebo aktualizace k vytváření nebo aktualizaci protokolů toku.
Zakázání protokolů toku NSG
Pomocí následujícího příkladu zakažte tokové protokoly. Volání je stejné jako povolení protokolů toku, kromě toho, že je pro povolenou vlastnost nastavena hodnota 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
Odpověď vrácená z předchozího příkladu je následující:
{
"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
}
}
}
Poznámka
- Network Watchers – Nastavení konfigurace záznamu toku rozhraní REST API použité v předchozím příkladu je staré a může být brzy vyřazeno z používání.
- Doporučujeme použít nové protokoly toku – Vytvoření nebo aktualizace rozhraní REST API k zakázání protokolů toku a protokolů toku – Odstranění rozhraní REST API k odstranění prostředku protokolů toku.
Protokoly toku dotazů
Následující volání REST zjišťuje stav záznamů toku ve skupině zabezpečení sítě.
$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
Následující příklad ukazuje vrácenou odpověď:
{
"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
}
}
}
Poznámka
- Network Watchers – Získání stavu protokolu toku rozhraní REST API použité v předchozím příkladu vyžaduje další čtenáře oprávnění ve skupině prostředků služby Network Watcher. Toto rozhraní API je navíc staré a může být brzy zastaralé.
- Doporučuje se použít nové rozhraní REST API Flow Logs - Get k dotazování protokolů toku.
Stažení protokolu toku
Umístění úložiště protokolu toku je definováno při vytváření. Pohodlným nástrojem pro přístup k protokolům toků uloženým v účtu úložiště je Microsoft Azure Storage Explorer. Další informace naleznete v části Úvod do aplikace Storage Explorer.
Pokud je zadaný účet úložiště, soubory zachytávání paketů se uloží do účtu úložiště v následujícím umístění:
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
Další kroky
- Informace o použití předdefinovaných zásad Azure k auditování nebo nasazení protokolů toku NSG najdete v tématu Správa protokolů toku NSG pomocí služby Azure Policy.
- Další informace o analýze provozu najdete v tématu Analýza provozu.