NSG-stroomlogboeken beheren met REST API

Logboekregistratie van netwerkbeveiligingsgroepen is een functie van Azure Network Watcher waarmee u informatie kunt vastleggen over IP-verkeer dat via een netwerkbeveiligingsgroep stroomt. Zie het overzicht van NSG-stroomlogboeken voor meer informatie over logboekregistratie van netwerkbeveiligingsgroepen.

In dit artikel leest u hoe u de REST API kunt gebruiken om logboeken voor stromen in te schakelen, uit te schakelen en er query's op uit te voeren met behulp van de REST API. U kunt leren hoe u een NSG-stroomlogboek beheert met behulp van de Azure-portal, PowerShell, Azure CLI of ARM-sjabloon.

In dit artikel leert u hoe u het volgende kunt doen:

  • Stroomlogboeken inschakelen (versie 2)
  • Stroomlogboeken uitschakelen
  • Status van querystroomlogboeken

Vereisten

Belangrijk

Wanneer u REST API-aanroepen naar Network Watcher uitvoert, verwijst de naam van de resourcegroep in de aanvraag-URI naar de resourcegroep die network Watcher bevat, niet naar de resources waarop u de diagnostische acties uitvoert.

Aanmelden met ARMClient

Meld u aan bij armclient met uw Azure-referenties.

armclient login

Insights-provider registreren

De Microsoft.Insights-provider moet zijn geregistreerd om verkeer dat via een netwerkbeveiligingsgroep stroomt, te kunnen registreren. Als u niet zeker weet of de Microsoft.Insights-provider is geregistreerd, gebruikt u Providers - REST API registreren om deze te registreren.

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

NSG-stroomlogboeken inschakelen

De opdracht voor het inschakelen van stroomlogboeken versie 2 wordt weergegeven in het volgende voorbeeld. Vervang voor versie 1 het veld Versie door '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

Het antwoord dat uit het voorgaande voorbeeld is geretourneerd, is als volgt:

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

Notitie

NSG-stroomlogboeken uitschakelen

Gebruik het volgende voorbeeld om stroomlogboeken uit te schakelen. De aanroep is hetzelfde als het inschakelen van stroomlogboeken, behalve false is ingesteld voor de ingeschakelde eigenschap.

$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

Het antwoord dat uit het voorgaande voorbeeld is geretourneerd, is als volgt:

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

Notitie

Querystroomlogboeken

Met de volgende REST-aanroep wordt de status van stroomlogboeken in een netwerkbeveiligingsgroep opgevraagd.

$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

In het volgende voorbeeld ziet u het geretourneerde antwoord:

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

Notitie

Een stroomlogboek downloaden

De opslaglocatie van een stroomlogboek wordt gedefinieerd bij het maken. Een handig hulpprogramma voor toegang tot stroomlogboeken die zijn opgeslagen in een opslagaccount, is Microsoft Azure Storage Explorer. Zie Aan de slag met Storage Explorer voor meer informatie.

Als er een opslagaccount is opgegeven, worden pakketopnamebestanden opgeslagen in een opslagaccount op de volgende locatie:

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

Volgende stappen