Konfigurace protokolů toku skupiny zabezpečení sítě pomocí rozhraní REST API

Protokoly toku skupiny zabezpečení sítě jsou funkcí Network Watcher, která umožňuje zobrazit informace o příchozím a výstupním provozu IP prostřednictvím skupiny zabezpečení sítě. Tyto protokoly toku se zapisují ve formátu JSON a zobrazují odchozí a příchozí toky na základě jednotlivých pravidel. Tok se vztahuje na 5 řazené kolekce členů toku (zdrojová/cílová IP adresa, zdrojový/cílový port, protokol) a pokud byl provoz povolený nebo odepřený.

Než začnete

ARMclient se používá k volání rozhraní REST API pomocí PowerShellu. ARMClient se nachází na čokoládě v ARMClient na Chocolatey. Podrobné specifikace protokolů toků NSG najdete tady:

Tento scénář předpokládá, že jste už postupovali podle kroků v části Vytvoření Network Watcher k vytvoření Network Watcher.

Důležité

Pro Network Watcher rozhraní REST API volá název skupiny prostředků v identifikátoru URI požadavku je skupina prostředků, která obsahuje Network Watcher, nikoli prostředky, na které provádíte diagnostické akce.

Scenario

Scénář popsaný v tomto článku ukazuje, jak povolit, zakázat a dotazovat protokoly toku pomocí rozhraní REST API. Další informace o protokolování toků skupin zabezpečení sítě najdete v tématu Protokolování toku skupiny zabezpečení sítě – Přehled.

V tomto scénáři:

  • Povolení protokolů toku (verze 2)
  • Zakázání protokolů toku
  • Stav protokolů toku dotazů

Přihlášení pomocí ARMClient

Přihlaste se k armclient pomocí přihlašovacích údajů Azure.

armclient login

Registrace poskytovatele Insights

Aby protokolování toku fungovalo úspěšně, musí být zaregistrovaný zprostředkovatel Microsoft.Přehledy. Pokud si nejste jistí, jestli je zaregistrovaný zprostředkovatel Microsoft.Přehledy, spusťte následující skript.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2016-09-01"

Povolení protokolů toku skupiny zabezpečení sítě

Příkaz pro povolení protokolů toku verze 2 se zobrazí v následujícím příkladu. Pro verzi 1 nahraďte pole "version" za "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=2016-12-01" $requestBody

Odpověď vrácená z předchozího příkladu je následující:

{
  "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
    }
  }
}

Poznámka

Zakázání protokolů toku skupiny zabezpečení sítě

Pomocí následujícího příkladu zakažte protokoly toku. Volání je stejné jako povolení protokolů toku, s výjimkou false je nastavena pro povolenou vlastnost.

$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=2016-12-01" $requestBody

Odpověď vrácená z předchozího příkladu je následující:

{
  "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
    }
  }
}

Poznámka

Protokoly toku dotazů

Následující volání REST se dotazuje na stav protokolů toku ve skupině zabezpečení sítě.

$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=2016-12-01" $requestBody

Následuje příklad vrácené odpovědi:

{
  "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
    }
  }
}

Poznámka

Stažení protokolu toku

Umístění úložiště protokolu toku je definováno při vytváření. Pohodlný nástroj pro přístup k těmto protokolům toku uloženým v účtu úložiště je Průzkumník služby Microsoft Azure Storage, který si můžete stáhnout tady:https://storageexplorer.com/

Pokud je zadaný účet úložiště, ukládají se soubory zachytávání paketů 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

Zjistěte, jak vizualizovat protokoly toku NSG pomocí PowerBI.

Zjistěte, jak vizualizovat protokoly toku NSG pomocí nástrojů open source