Verwalten von NSG-Datenflussprotokollen mithilfe von REST API
Wichtig
Am 30. September 2027 werden NSG-Datenflussprotokolle (Netzwerksicherheitsgruppe) eingestellt. Aufgrund dieser Einstellung können Sie ab dem 30. Juni 2025 keine neuen NSG-Datenflussprotokolle mehr erstellen. Es wird empfohlen, zu Datenflussprotokollen für virtuelle Netzwerke zu migrieren, bei denen die Einschränkungen von NSG-Datenflussprotokollen nicht gelten. Nach dem Einstellungsdatum wird die Aktivierung der Datenverkehrsanalyse mit NSG-Datenflussprotokollen nicht mehr unterstützt, und vorhandene Ressourcen für NSG-Datenflussprotokolle in Ihren Abonnements werden gelöscht. NSG-Datenflussprotokolle werden jedoch nicht gelöscht, und es gelten weiterhin die jeweiligen Aufbewahrungsrichtlinien. Weitere Informationen finden Sie in der offiziellen Ankündigung.
Die Datenflussprotokollierung für Netzwerksicherheitsgruppen ist ein Feature von Azure Network Watcher, mit dem Sie Informationen zu IP-Datenverkehr protokollieren können, der eine Netzwerksicherheitsgruppe durchläuft. Weitere Informationen zur Datenflussprotokollierung für Netzwerksicherheitsgruppen finden Sie unter Übersicht über NSG-Datenflussprotokolle.
In diesem Artikel erfahren Sie, wie Sie die REST-API verwenden, um Flussprotokolle mithilfe der REST-API zu aktivieren, zu deaktivieren und abzufragen. Sie erfahren, wie Sie ein NSG-Flussprotokoll mithilfe von Azure-Portal, PowerShell, Azure CLI oder ARM-Vorlage verwalten.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Aktivieren von Flowprotokollen (Version 2)
- Deaktivieren von Flowprotokollen
- Abfragen des Flowprotokollstatus
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- ARMClient. ARMClient ist ein einfaches Befehlszeilentool zum Aufrufen der Azure Resource Manager-API. Informationen zum Installieren des Tools finden Sie unter ARMClient. Ausführliche Spezifikationen der REST-API für NSG-Flussprotokolle finden Sie unter Datenflussprotokolle – REST-API
Wichtig
Für REST-API-Aufrufe an Network Watcher ist der Ressourcengruppenname im Anforderungs-URI die Ressourcengruppe, die Network Watcher und nicht die Ressourcen, für die Sie die Diagnoseaktionen ausführen, enthält.
Anmelden mit ARMClient
Melden Sie sich mit Ihren Azure-Anmeldeinformationen bei armclient an.
armclient login
Registrieren von Insights-Anbietern
Der Microsoft.Insights-Anbieter muss registriert sein, um den Datenverkehr, der eine Netzwerksicherheitsgruppe durchläuft, erfolgreich protokollieren zu können. Wenn Sie nicht sicher sind, ob der Microsoft.Insights-Anbieter registriert ist, verwenden Sie Anbieter – Registrieren REST-API, um ihn zu registrieren.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
Aktivieren von NSG-Datenflussprotokollen
Der Befehl zum Aktivieren von Flowprotokollen der Version 2 wird im folgenden Beispiel gezeigt. Ersetzen Sie für Version 1 den Wert des Felds „version“ durch „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
Das vorherige Beispiel gibt folgende Antwort zurück:
{
"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
}
}
}
Hinweis
- Die im vorherigen Beispiel verwendete REST-API Network Watcher – Datenflussprotokollkonfiguration festlegen ist alt, und könnte bald auslaufen.
- Es wird empfohlen, stattdessen die neue REST-API Datenflussprotokolle – Erstellen oder Aktualisieren zu verwenden, um Protokolle zu erstellen oder zu aktualisieren.
Deaktivieren von NSG-Flussprotokollen
Verwenden Sie das folgende Beispiel, um Flowprotokolle zu deaktivieren. Der Aufruf entspricht dem Aktivieren von Flowprotokollen – abgesehen davon, dass false für die Enabled-Eigenschaft festgelegt wird.
$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
Das vorherige Beispiel gibt folgende Antwort zurück:
{
"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
}
}
}
Hinweis
- Die im vorherigen Beispiel verwendete REST-API Network Watcher – Datenflussprotokollkonfiguration festlegen ist alt, und könnte bald auslaufen.
- Es wird empfohlen, die neue REST-API Datenflussprotokolle – Erstellen oder Aktualisieren zu verwenden, um Datenflussprotokolle zu deaktivieren, und die REST-API Datenflussprotokolle – Löschen, um die Datenflussprotokollressource zu löschen.
Abfragen von Flowprotokollen
Der folgende REST-Aufruf fragt den Status von Datenflussprotokollen in einer Netzwerksicherheitsgruppe ab.
$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
Das folgende Beispiel zeigt die zurückgegebene Antwort:
{
"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
}
}
}
Hinweis
- Die im vorherigen Beispiel verwendete REST-API Network Watcher – Datenflussprotokollstatus abrufen erfordert eine zusätzliche Leser-Berechtigung in der Ressourcengruppe des Network Watchers. Außerdem ist diese API veraltet und läuft möglicherweise bald aus.
- Es wird empfohlen, stattdessen die neue REST-API Datenflussprotokolle – Abrufen zu verwenden, um neue Datenflussprotokolle abzurufen.
Herunterladen eines Flowprotokolls
Bei der Erstellung wird der Speicherort eines Flowprotokolls definiert. Ein nützliches Tool für den Zugriff auf diese in einem Speicherkonto gespeicherten Datenflussprotokolle ist der Microsoft Azure Storage-Explorer. Weitere Informationen finden Sie unter Erste Schritte mit Storage-Explorer.
Wenn ein Speicherkonto angegeben wird, werden Paketerfassungsdateien in einem Speicherkonto am folgenden Speicherort gespeichert:
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
Nächste Schritte
- Weitere Informationen zur Verwendung integrierter Azure-Richtlinien zum Überwachen oder Bereitstellen von NSG-Datenflussprotokollen finden Sie unter Verwalten von NSG-Datenflussprotokollen mit Azure Policy.
- Weitere Informationen zur Datenverkehrsanalyse finden Sie unter Azure Network Watcher-Datenverkehrsanalysen.