Démarrage rapide : Configurer les journaux de flux NSG Azure Network Watcher à l’aide d’un modèle Azure Resource Manager (ARM)

Dans ce guide de démarrage rapide, vous allez apprendre à activer des journaux de flux de groupe de sécurité réseau (journaux de flux NSG) avec un modèle Azure Resource Manager (ARM) et Azure PowerShell. Pour plus d’informations, consultez Qu’est-ce qu’Azure Resource Manager ? et Vue d’ensemble des journaux de flux NSG.

Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.

Nous commençons par une vue d’ensemble des propriétés de l’objet journal de flux NSG. Nous fournissons des exemples de modèle. Ensuite, nous utilisons une instance Azure PowerShell locale pour déployer le modèle.

Si votre environnement remplit les prérequis et que vous êtes déjà familiarisé avec l’utilisation des modèles ARM, sélectionnez le bouton Déployer sur Azure. Le modèle s’ouvre dans le portail Azure.

Bouton pour déployer le modèle Resource Manager sur Azure.

Prérequis

Compte Azure avec un abonnement actif. Si vous n’en avez pas, créez un compte gratuit avant de commencer.

Vérifier le modèle

Le modèle que nous utilisons dans ce guide de démarrage rapide est tiré des modèles de démarrage rapide Azure.

{
  "$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'))]"
      ]
    }
  ]
}

Les ressources suivantes sont définies dans le modèle :

Le code mis en surbrillance dans l’exemple précédent montre une définition de ressource de journaux de flux NSG.

Déployer le modèle

Ce tutoriel part du principe que vous disposez d’un groupe de ressources et d’un groupe de sécurité réseau existants sur lesquels vous pouvez activer la journalisation des flux.

Vous pouvez enregistrer localement les exemples de modèles présentés dans cet article sous la forme d’un fichier azuredeploy.json. Mettez à jour les valeurs de propriété afin qu’elles pointent vers des ressources valides dans votre abonnement.

Pour déployer le modèle, exécutez la commande suivante dans Azure PowerShell :

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

Remarque

Ces commandes déploient une ressource dans le groupe de ressources NetworkWatcherRG, et non dans le groupe de ressources qui contient le groupe de sécurité réseau.

Valider le déploiement

Deux options s’offrent à vous pour déterminer si votre déploiement a réussi :

Si vous rencontrez des problèmes lors du déploiement, consultez Résolution des erreurs courantes dans un déploiement Azure avec Azure Resource Manager.

Nettoyer les ressources

Vous pouvez supprimer des ressources Azure en utilisant le mode de déploiement complet. Pour supprimer une ressource de journaux de flux, spécifiez un déploiement en mode complet sans inclure la ressource que vous voulez supprimer. Découvrez-en davantage sur le mode de déploiement complet.

Vous pouvez également désactiver ou supprimer un journal de flux dans le portail Azure :

  1. Dans la zone de recherche située en haut du portail, entrez Network Watcher. Sélectionnez Network Watcher dans les résultats de recherche.

  2. Sous Journaux, sélectionnez Journaux de flux.

  3. Dans Network Watcher | Journaux de flux, cochez la case du journal de flux que vous souhaitez supprimer.

  4. Sélectionnez Désactiver ou Supprimer. Pour plus d’informations, consultez Désactiver un journal de flux ou Supprimer un journal de flux.

Dans ce guide de démarrage rapide, vous avez appris à activer les journaux de flux NSG à l’aide d’un modèle ARM. Ensuite, découvrez comment visualiser vos données de flux de groupe de sécurité réseau à l’aide de l’analyse du trafic :