Správa protokolů toku NSG pomocí rozhraní REST API

Protokolování toku skupiny zabezpečení sítě je funkce služby Azure Network Watcher, která umožňuje protokolovat informace o provozu PROTOKOLU IP procházejícího skupinou zabezpečení sítě. Další informace o protokolování toku skupiny zabezpečení sítě najdete v přehledu 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í webu Azure Portal, PowerShellu, Azure CLI nebo š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ření účtu zdarma
  • ARMClient. ARMClient je jednoduchý nástroj příkazového řádku pro vyvolání rozhraní API Azure Resource Manageru. Pokud chcete nástroj nainstalovat, přečtěte si téma ARMClient. Podrobné specifikace protokolů toku NSG najdete v tématu Protokoly toku – 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

Microsoft. Přehledy zprostředkovatel musí být zaregistrovaný pro úspěšné protokolování provozu procházejícího skupinou zabezpečení sítě. Pokud si nejste jistí, jestli je zaregistrovaný poskytovatel Microsoft.Přehledy, použijte k registraci rozhraní REST API poskytovatele.

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

Povolení protokolů 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 = "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

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:

Zákaz protokolů toku NSG

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=2022-11-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=2022-11-01" $requestBody

Následující příklad ukazuje vrácenou odpověď:

{
  "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 protokolům toku uloženým v účtu úložiště je Průzkumník služby Microsoft Azure Storage. Další informace najdete v tématu Začínáme s Průzkumník služby Storage.

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