Schnellstart: Konfigurieren von NSG-Datenflussprotokollen von Azure Network Watcher mit einer Vorlage von Azure Resource Manager (ARM)

In dieser Schnellstartanleitung werden NSG-Datenflussprotokolle mithilfe einer ARM-Vorlage (Azure Resource Manager) und unter Verwendung von Azure PowerShell aktiviert. Weitere Informationen finden Sie unter Was ist Azure Resource Manager? und Übersicht über NSG-Datenflussprotokolle.

Eine Azure Resource Manager-Vorlage ist eine JSON (JavaScript Object Notation)-Datei, welche die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zu schreiben, mit denen die Bereitstellung erstellt wird.

Wir beginnen mit einer Übersicht über die Eigenschaften des NSG-Flussprotokollobjekts. Wir stellen Ihnen Beispielvorlagen zur Verfügung. Dann verwenden wir eine lokale Azure PowerShell-Instanz, um die Vorlage bereitzustellen.

Wenn Ihre Umgebung die Voraussetzungen erfüllt und Sie mit der Verwendung von ARM-Vorlagen vertraut sind, klicken Sie auf die Schaltfläche In Azure bereitstellen. Die Vorlage wird im Azure-Portal geöffnet.

Schaltfläche zum Bereitstellen der Resource Manager-Vorlage in Azure.

Voraussetzungen

Ein Azure-Konto mit einem aktiven Abonnement. Sollten Sie kein Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Überprüfen der Vorlage

Die in dieser Schnellstartanleitung verwendete Vorlage stammt aus den Azure-Schnellstartvorlagen.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.9.1.41621",
      "templateHash": "14580725600461536175"
    }
  },
  "parameters": {
    "networkWatcherName": {
      "type": "string",
      "defaultValue": "[format('NetworkWatcher_{0}', parameters('location'))]",
      "metadata": {
        "description": "Name of the Network Watcher attached to your subscription. Format: NetworkWatcher_<region_name>"
      }
    },
    "flowLogName": {
      "type": "string",
      "defaultValue": "FlowLog1",
      "metadata": {
        "description": "Name of your Flow log resource"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Region where you resources are located"
      }
    },
    "existingNSG": {
      "type": "string",
      "metadata": {
        "description": "Resource ID of the target NSG"
      }
    },
    "retentionDays": {
      "type": "int",
      "defaultValue": 0,
      "maxValue": 365,
      "minValue": 0,
      "metadata": {
        "description": "Retention period in days. Default is zero which stands for permanent retention. Can be any Integer from 0 to 365"
      }
    },
    "flowLogsVersion": {
      "type": "int",
      "defaultValue": 2,
      "allowedValues": [
        1,
        2
      ],
      "metadata": {
        "description": "FlowLogs Version. Correct values are 1 or 2 (default)"
      }
    },
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    }
  },
  "variables": {
    "storageAccountName": "[format('flowlogs{0}', uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    },
    {
      "type": "Microsoft.Network/networkWatchers",
      "apiVersion": "2022-01-01",
      "name": "[parameters('networkWatcherName')]",
      "location": "[parameters('location')]",
      "properties": {}
    },
    {
      "type": "Microsoft.Network/networkWatchers/flowLogs",
      "apiVersion": "2022-01-01",
      "name": "[format('{0}/{1}', parameters('networkWatcherName'), parameters('flowLogName'))]",
      "location": "[parameters('location')]",
      "properties": {
        "targetResourceId": "[parameters('existingNSG')]",
        "storageId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
        "enabled": true,
        "retentionPolicy": {
          "days": "[parameters('retentionDays')]",
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": "[parameters('flowLogsVersion')]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
      ]
    }
  ]
}

Die folgenden Ressourcen sind in der Vorlage definiert:

Der hervorgehobene Code im vorherigen Beispiel zeigt eine Ressourcendefinition für NSG-Flussprotokolle.

Bereitstellen der Vorlage

In diesem Tutorial wird davon ausgegangen, dass Sie über eine Ressourcengruppe und eine NSG verfügen, in der Sie die Flussprotokollierung aktivieren können.

Sie können jede der in diesem Artikel gezeigten Beispielvorlagen lokal als azuredeploy.json speichern. Aktualisieren Sie die Eigenschaftswerte so, dass sie auf gültige Ressourcen in Ihrem Abonnement verweisen.

Führen Sie den folgenden Befehl in Azure PowerShell aus, um die Vorlage bereitzustellen.

$context = Get-AzSubscription -SubscriptionId <subscription Id>
Set-AzContext $context
New-AzResourceGroupDeployment -Name EnableFlowLog -ResourceGroupName NetworkWatcherRG `
    -TemplateFile "C:\MyTemplates\azuredeploy.json"

Hinweis

Diese Befehle stellen eine Ressource für die NetworkWatcherRG-Ressourcengruppe bereit und nicht für die Ressourcengruppe, die die NSG enthält.

Überprüfen der Bereitstellung

Sie haben zwei Möglichkeiten, um zu prüfen, ob Ihre Bereitstellung erfolgreich war:

Falls bei der Bereitstellung Probleme aufgetreten sind, lesen Sie den Artikel Beheben gängiger Azure-Bereitstellungsfehler mit Azure Resource Manager.

Bereinigen von Ressourcen

Sie können Azure-Ressourcen unter Verwendung des vollständigen Bereitstellungsmodus löschen. Zum Löschen einer Ressource des Datenflussprotokolls geben Sie eine Bereitstellung im Modus „Vollständig“ ohne Angabe der zu löschenden Ressource an. Erfahren Sie mehr über den Bereitstellungsmodus „Vollständig“.

Sie können auch ein Datenflussprotokoll im Azure-Portal deaktivieren oder löschen:

  1. Geben Sie im Suchfeld oben im Portal Network Watcher ein. Wählen Sie Network Watcher aus den Suchergebnissen aus.

  2. Wählen Sie unter Protokolle die Option Datenflussprotokolle aus.

  3. Aktivieren Sie in Network Watcher | Datenflussprotokolle das Kontrollkästchen des Datenflussprotokolls, das Sie löschen möchten.

  4. Wählen Sie Deaktivieren oder Löschen aus. Weitere Informationen finden Sie unter Deaktivieren eines Datenflussprotokolls oder Löschen eines Datenflussprotokolls.

In dieser Schnellstartanleitung haben Sie erfahren, wie Sie NSG-Datenflussprotokolle mithilfe einer ARM-Vorlage aktivieren. Erfahren Sie als Nächstes, wie Sie Ihre NSG-Flussdaten mithilfe von Datenverkehrsanalysen visualisieren: