Gérer des journaux de flux NSG utilisant un modèle Azure Resource Manager

Les journaux de flux NSG sont une fonctionnalité d’Azure Network Watcher qui vous permet de journaliser des informations sur le trafic IP circulant dans un groupe de sécurité réseau. Pour plus d’informations sur la journalisation de flux du groupe de sécurité réseau, voir la Vue d’ensemble des journaux de flux NSG.

Dans cet article, vous apprendrez comment gérer les journaux de flux NSG programmatiquement avec un modèle Azure Resource Manager et Azure PowerShell. Vous pouvez apprendre à gérer un journal de flux NSG à l’aide du Portail Azure, de PowerShell, d’Azure CLI ou de l’API REST.

Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration pour votre projet en utilisant la syntaxe déclarative.

Prérequis

Objet journaux de flux NSG

L’objet de journaux de flux NSG ainsi que tous les paramètres sont indiqués dans l’exemple suivant. Pour obtenir une vue d’ensemble complète des propriétés de l’objet, voir informations de référence sur le modèle de journaux de flux NSG.

{
  "name": "string",
  "type": "Microsoft.Network/networkWatchers/flowLogs",
  "location": "string",
  "apiVersion": "2022-07-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"
         }
      }
    }
  }

Pour créer une ressource Microsoft.Network/networkWatchers/flowLogs, ajoutez le code JSON ci-dessus à la section des ressources de votre modèle.

Créer votre modèle

Pour en savoir plus sur la création de modèles Azure Resource Manager, voir :

Les exemples suivants présentent des modèles complets pour activer les journaux de flux NSG.

Exemple 1

Exemple 1 : utilise la version la plus simple des informations du modèle ARM dans laquelle sont transmis les paramètres minimaux. Le modèle suivant active les journaux de flux du groupe de sécurité réseau sur un groupe de sécurité réseau cible et les stocke dans un compte de stockage donné.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
 {
    "name": "myNSG-myresourcegroup-flowlog",
    "type": "Microsoft.Network/networkWatchers/FlowLogs/",
    "location": "eastus",
    "apiVersion": "2022-11-01",
    "properties": {
      "targetResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
      "storageId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
      "enabled": true,
      "flowAnalyticsConfiguration": {},
      "retentionPolicy": {},
      "format": {}
    }

  }
  ]
}

Notes

  • targetResourceId est l’ID de ressource du groupe de sécurité réseau cible.
  • storageId est l’ID de ressource du compte de stockage de destination.

Exemple 2

L’exemple 2 utilise le modèle suivant pour activer les journaux de flux NSG (version 2) avec une rétention de 5 jours et l’analyse du trafic avec un intervalle de traitement de 10 minutes.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
    {
      "name": "myNSG-myresourcegroup-flowlog",
      "type": "Microsoft.Network/networkWatchers/FlowLogs/",
      "location": "eastus",
      "apiVersion": "2022-11-01",
      "properties": {
        "targetResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
        "storageId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        "enabled": true,
        "flowAnalyticsConfiguration": {
          "networkWatcherFlowAnalyticsConfiguration": {
            "enabled": true,
            "workspaceResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/defaultresourcegroup-eus/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-abcdef01-2345-6789-0abc-def012345678-EUS",
            "trafficAnalyticsInterval": 10
          }
        },
        "retentionPolicy": {
          "days": 5,
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": 2
        }
      }
    }
  ]
}

Notes

  • targetResourceId est l’ID de ressource du groupe de sécurité réseau cible.
  • storageId est l’ID de ressource du compte de stockage de destination.
  • workspaceResourceId est l’ID de ressource de l’espace de travail Traffic Analytics.

Déploiement de votre modèle Azure Resource Manager

Ce tutoriel part du principe que vous disposez d’un groupe de ressources et d’un groupe de sécurité réseau sur lequel vous pouvez activer la journalisation de flux. Vous pouvez enregistrer les exemples de modèles ci-dessus localement en tant que 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 PowerShell.

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

Notes

Les commandes suivantes déploient une ressource dans le groupe de ressources NetworkWatcherRG et non le groupe de ressources contenant le groupe de sécurité réseau.

Vérifier votre déploiement

Il existe deux façons de vérifier si votre déploiement a réussi. Votre console PowerShell doit indiquer « Succeeded » (réussite) pour « ProvisioningState ». Vous pouvez aussi vérifier vos modifications dans la page du portail dédiée aux journaux de flux du groupe de sécurité réseau. 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.

Supprimer votre ressource

Azure permet la suppression des ressources via 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 souhaitez supprimer. Pour plus d’informations, consultez Modes de déploiement complet.

Étapes suivantes