Sdílet prostřednictvím


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

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

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