Schnellstart: Konfigurieren von Datenflussprotokollen von Netzwerksicherheitsgruppen mithilfe einer ARM-Vorlage

In dieser Schnellstartanleitung erfahren Sie, wie Sie NSG-Datenflussprotokolle (Netzwerksicherheitsgruppe) mithilfe einer Azure Resource Manager-Vorlage (ARM-Vorlage) und unter Verwendung von Azure PowerShell aktivieren.

Eine ARM-Vorlage ist eine JSON-Datei (JavaScript Object Notation), in der die Infrastruktur und die Konfiguration für Ihr Projekt definiert sind. Die Vorlage verwendet eine deklarative Syntax. In deklarativer Syntax beschreiben Sie Ihre beabsichtigte Bereitstellung, ohne die Reihenfolge der Programmierbefehle zur Erstellung der Bereitstellung zu schreiben.

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.

In Azure bereitstellen

Voraussetzungen

Wenn Sie kein Azure-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",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Region where you resources are located"
      }
    },
    "NetworkWatcherName": {
      "type": "string",
      "defaultValue": "[concat('NetworkWatcher_', parameters('location'))]",
      "metadata": {
        "description": "Name of the Network Watcher attached to your subscription. Format: NetworkWatcher_<region_name>"
      }
    },
    "FlowLogName": {
      "type": "string",
      "defaultValue": "FlowLog1",
      "metadata": {
        "description": "Chosen name of your Flow log resource"
      }
    },
    "existingNSG": {
      "type": "string",
      "metadata": {
        "description": "Resource ID of the target NSG"
      }
    },
    "RetentionDays": {
      "type": "int",
      "defaultValue": 0,
      "minValue": 0,
      "maxValue": 365,
      "metadata": {
        "description": "Retention period in days. Default is zero which stands for permanent retention. Can be any Integer from 0 to 365"
      }
    },
    "FlowLogsversion": {
      "type": "string",
      "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": "[concat('flowlogs', uniquestring(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2019-06-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {
      }
    },
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2020-06-01",
      "name": "deployFlowLogs",
      "resourceGroup": "NetworkWatcherRG",
      "dependsOn": [
        "[variables('storageAccountName')]"
      ],
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
            "location": {
              "type": "string"
            },
            "NetworkWatcherName": {
              "type": "string"
            },
            "FlowLogName": {
              "type": "string"
            },
            "existingNSG": {
              "type": "string"
            },
            "RetentionDays": {
              "type": "int"
            },
            "FlowLogsversion": {
              "type": "string"
            },
            "storageAccountResourceId": {
              "type": "string"
            }
          },
          "resources": [
            {
              "type": "Microsoft.Network/networkWatchers/flowLogs",
              "apiVersion": "2020-06-01",
              "name": "[concat(parameters('NetworkWatcherName'), '/', parameters('FlowLogName'))]",
              "location": "[parameters('location')]",
              "properties": {
                "targetResourceId": "[parameters('existingNSG')]",
                "storageId": "[parameters('storageAccountResourceId')]",
                "enabled": true,
                "retentionPolicy": {
                  "days": "[parameters('RetentionDays')]",
                  "enabled": true
                },
                "format": {
                  "type": "JSON",
                  "version": "[parameters('FlowLogsversion')]"
                }
              }
            }
          ]
        },
        "parameters": {
          "location": {
            "value": "[parameters('location')]"
          },
          "NetworkWatcherName": {
            "value": "[parameters('NetworkWatcherName')]"
          },
          "FlowLogName": {
            "value": "[parameters('FlowLogName')]"
          },
          "existingNSG": {
            "value": "[parameters('existingNSG')]"
          },
          "RetentionDays": {
            "value": "[parameters('RetentionDays')]"
          },
          "FlowLogsversion": {
            "value": "[parameters('FlowLogsversion')]"
          },
          "storageAccountResourceId": {
            "value": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
          }
        }
      }
    }
  ]
}

Diese Ressourcen sind in der Vorlage definiert:

NSG-Flussprotokollobjekt

Der folgende Code zeigt ein NSG-Flussprotokollobjekt und seine Parameter an. Fügen Sie zum Erstellen einer Ressource vom Typ Microsoft.Network/networkWatchers/flowLogs diesen Code im Ressourcenabschnitt Ihrer Vorlage hinzu:

{
  "name": "string",
  "type": "Microsoft.Network/networkWatchers/flowLogs",
  "location": "string",
  "apiVersion": "2019-09-01",
  "properties": {
    "targetResourceId": "string",
    "storageId": "string",
    "enabled": "boolean",
    "flowAnalyticsConfiguration": {
      "networkWatcherFlowAnalyticsConfiguration": {
        "enabled": "boolean",
        "workspaceResourceId": "string",
        "trafficAnalyticsInterval": "integer"
      },
      "retentionPolicy": {
        "days": "integer",
        "enabled": "boolean"
      },
      "format": {
        "type": "string",
        "version": "integer"
      }
    }
  }
}

Eine umfassende Übersicht über die Eigenschaften des NSG-Flussprotokollobjekts finden Sie unter Microsoft.Network networkWatchers/flowLogs.

Erstellen der Vorlage

Wenn Sie ARM-Vorlagen zum ersten Mal verwenden, lesen Sie die folgenden Artikel, um mehr über ARM-Vorlagen zu erfahren:

Das folgende Beispiel ist eine vollständige Vorlage. Es ist auch die einfachste Version der Vorlage. Das Beispiel enthält die Mindestparameter, die zur Einrichtung von NSG-Datenflussprotokollen übergeben werden. Weitere Beispiele finden Sie im Übersichtsartikel Konfigurieren von NSG-Flussprotokollen aus einer Azure Resource Manager-Vorlage.

Beispiel

Die folgende Vorlage ermöglicht Datenflussprotokolle für eine NSG und speichert die Protokolle dann in einem bestimmten Speicherkonto:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
    {
      "name": "NetworkWatcher_centraluseuap/Microsoft.NetworkDalanDemoPerimeterNSG",
      "type": "Microsoft.Network/networkWatchers/FlowLogs/",
      "location": "centraluseuap",
      "apiVersion": "2019-09-01",
      "properties": {
        "targetResourceId": "/subscriptions/<subscription Id>/resourceGroups/DalanDemo/providers/Microsoft.Network/networkSecurityGroups/PerimeterNSG",
        "storageId": "/subscriptions/<subscription Id>/resourceGroups/MyCanaryFlowLog/providers/Microsoft.Storage/storageAccounts/storagev2ira",
        "enabled": true,
        "flowAnalyticsConfiguration": {},
        "retentionPolicy": {},
        "format": {}
      }
    }
  ]
}

Hinweis

  • Der Ressourcenname verwendet das Format ParentResource_ChildResource. In unserem Beispiel ist die übergeordnete Ressource die regionale Azure Network Watcher-Instanz:
    • Format: NetworkWatcher_RegionName
    • Beispiel: NetworkWatcher_centraluseuap
  • targetResourceId ist die Ressourcen-ID der Ziel-NSG.
  • storageId ist die Ressourcen-ID des Zielspeicherkontos.

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-Beispielressourcengruppe 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 ein NSG-Datenflussprotokoll auch im Azure-Portal deaktivieren:

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie Alle Dienste aus. Geben Sie im Feld Filter die Zeichenfolge Network Watcher ein. Wählen Sie in den Suchergebnissen Network Watcher aus.
  3. Wählen Sie unter Protokolle die Option NSG-Datenflussprotokolle aus.
  4. Wählen Sie in der NSG-Liste die Netzwerksicherheitsgruppe aus, für die Sie Datenflussprotokolle deaktivieren möchten.
  5. Wählen Sie unter Flowprotokolleinstellungen die Option Aus aus.
  6. Wählen Sie Speichern aus.

Nächste Schritte

In dieser Schnellstartanleitung haben Sie erfahren, wie Sie NSG-Datenflussprotokolle mithilfe einer ARM-Vorlage aktivieren. Als nächstes erfahren Sie, wie Sie Ihre NSG-Datenflussdaten mithilfe einer dieser Optionen visualisieren können: