Journalisation des ressources pour un groupe de sécurité réseau

Un groupe de sécurité réseau (NSG) comprend les règles qui autorisent ou refusent le trafic vers un sous-réseau de réseau virtuel, une interface réseau, ou les deux à la fois.

Quand vous activez la journalisation pour un groupe de sécurité réseau, vous pouvez collecter les types suivants d’informations sur le journal de ressources :

  • Événement : Entrées enregistrées pour lesquelles des règles NSG sont appliquées aux machines virtuelles, en fonction de l’adresse MAC.
  • Compteur de règle : contient des entrées correspondant au nombre de fois où chaque règle NSG est appliquée pour autoriser ou refuser le trafic. L’état de ces règles est collecté toutes les 300 secondes.

Les journaux de ressources ne sont disponibles que pour les groupes de sécurité réseau déployés via le modèle de déploiement Azure Resource Manager. Vous ne pouvez pas activer la journalisation des ressources pour des groupes de sécurité réseau déployés via le modèle de déploiement classique. Pour plus d’informations, consultez Comprendre les modèles de déploiement.

La journalisation des ressources est activée séparément pour chaque groupe de sécurité réseau sur lequel des données de diagnostic sont collectées. Si vous êtes plutôt intéressé par les journaux d’activité ou opérationnels, consultez Vue d’ensemble des journaux de la plateforme Azure. Si vous êtes intéressé par le trafic IP passant via les groupes de sécurité réseau, consultez les Journaux de flux des groupes de sécurité réseau.

Activation de la journalisation

Vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI pour activer la journalisation des ressources.

Portail Azure

  1. Connectez-vous au portail Azure.

  2. Dans la zone de recherche située en haut du portail Azure, entrez des groupes de sécurité réseau. Dans les résultats de la recherche, sélectionnez Groupe de sécurité réseau.

  3. Sélectionnez le groupe de sécurité réseau pour lequel activer la journalisation.

  4. Sous Supervision, sélectionnez Paramètres de diagnostic, puis sélectionnez Ajouter un paramètre de diagnostic :

    Capture d’écran montrant les paramètres de diagnostic d’un groupe de sécurité réseau avec Ajouter un paramètre de diagnostic mis en surbrillance.

  5. Dans Paramètre de diagnostic, entrez un nom, tel que myNsgDiagnostic.

  6. Pour Journaux, sélectionnez allLogs ou des catégories individuelles de journaux. Pour plus d’informations sur chaque catégorie, consultez Catégories de journaux.

  7. Sous Détails de la destination, sélectionnez une ou plusieurs destinations :

    • Envoyer à l’espace de travail Log Analytics
    • Archiver dans un compte de stockage
    • Diffuser vers un hub d’événements
    • Envoyer à une solution de partenaire

    Pour plus d’informations, consultez Destinations de journaux.

  8. Sélectionnez Enregistrer.

  9. Consultez et analysez les journaux d’activité. Pour plus d’informations, voir Afficher et analyser les journaux d’activité.

Azure PowerShell

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Vous pouvez exécuter les commandes contenues dans cette section dans Azure Cloud Shell, ou en exécutant PowerShell à partir de votre ordinateur. Azure Cloud Shell est un interpréteur de commandes interactif gratuit. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.

Si vous exécutez PowerShell sur votre ordinateur, vous devez utiliser le module Azure PowerShell version 1.0.0 ou ultérieure. Exécutez Get-Module -ListAvailable Az pour rechercher la version installée. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell localement, vous devez aussi exécuter la cmdlet Connect-AzAccount pour vous connecter à Azure avec un compte disposant des autorisations nécessaires.

Pour activer la journalisation des ressources, vous avez besoin de l’ID d’un groupe de sécurité réseau existant. Si vous n’avez pas de groupe de sécurité réseau, créez-en un à l’aide de la cmdlet New-AzNetworkSecurityGroup.

Obtenez le groupe de sécurité réseau sur lequel vous souhaitez activer la journalisation des ressources à l’aide de la cmdlet Get-AzNetworkSecurityGroup. Stockez le groupe de sécurité réseau dans une variable pour une utilisation ultérieure. Par exemple, pour récupérer un groupe de sécurité réseau nommé myNsg, qui existe dans un groupe de ressources appelé myResourceGroup, entrez la commande suivante :

$Nsg=Get-AzNetworkSecurityGroup `
  -Name myNsg `
  -ResourceGroupName myResourceGroup

Vous pouvez écrire des journaux de ressources sur différents types de destination. Pour plus d’informations, consultez Destinations de journaux. Dans cet article, les journaux sont envoyés vers une destination d’espace de travail Log Analytics. Si vous n’avez pas d’espace de travail, vous pouvez en créer un à l’aide de la cmdlet New-AzOperationalInsightsWorkspace.

Récupérez un espace de travail Log Analytics existant à l’aide la cmdlet Get-AzOperationalInsightsWorkspace. Par exemple, pour obtenir et stocker un espace de travail existant appelé myWorkspace dans un groupe de ressources appelé myWorkspaces, entrez la commande suivante :

$Oms=Get-AzOperationalInsightsWorkspace `
  -ResourceGroupName myWorkspaces `
  -Name myWorkspace

Il existe deux catégories de journalisation que vous pouvez activer. Pour plus d’informations, consultez Catégories de journal. Activez la journalisation des ressources du groupe de sécurité réseau à l’aide de la cmdlet New-AzDiagnosticSetting. L’exemple suivant journalise des données de catégorie événements et compteur dans l’espace de travail d’un groupe de sécurité réseau. Il utilise les ID du groupe de sécurité réseau et de l’espace de travail que vous avez obtenus avec les commandes précédentes :

New-AzDiagnosticSetting `
   -Name myDiagnosticSetting `
   -ResourceId $Nsg.Id `
   -WorkspaceId $Oms.ResourceId

Si vous voulez journaliser les données dans une autre destination que celle d’un espace de travail Log Analytics, utilisez un paramètre approprié dans la commande. Pour plus d’informations, consultez la page Journaux de ressources dans Azure.

Pour plus d’informations sur les paramètres, consultez New-AzDiagnosticSetting.

Consultez et analysez les journaux d’activité. Pour plus d’informations, voir Afficher et analyser les journaux d’activité.

Azure CLI

Vous pouvez exécuter les commandes contenues dans cette section dans Azure Cloud Shell, ou en exécutant Azure CLI à partir de votre ordinateur. Azure Cloud Shell est un interpréteur de commandes interactif gratuit. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.

Si vous exécutez l’interface CLI à partir de votre ordinateur, vous avez besoin de la version 2.0.38 ou ultérieure. Exécutez az --version sur votre ordinateur pour trouver la version installée. Si vous devez mettre à niveau, consultez Installation d’Azure CLI. Si vous exécutez l’interface CLI localement, vous devez aussi exécuter az login pour vous connecter à Azure avec un compte disposant des autorisations nécessaires.

Pour activer la journalisation des ressources, vous avez besoin de l’ID d’un groupe de sécurité réseau existant. Si vous n’avez pas de groupe de sécurité réseau, créez-en un à l’aide de az network nsg create.

Obtenez et stockez le groupe de sécurité réseau pour lequel vous souhaitez activer la journalisation des ressources avec az network nsg show. Par exemple, pour récupérer un groupe de sécurité réseau nommé myNsg, qui existe dans un groupe de ressources appelé myResourceGroup, entrez la commande suivante :

nsgId=$(az network nsg show \
  --name myNsg \
  --resource-group myResourceGroup \
  --query id \
  --output tsv)

Vous pouvez écrire des journaux de ressources sur différents types de destination. Pour plus d’informations, consultez Destinations de journaux. Dans cet article, des journaux sont envoyés vers une destination d’espace de travail Log Analytics, par exemple. Pour plus d’informations, consultez Catégories de journal.

Activez la journalisation des ressources pour le groupe de sécurité réseau avec az monitor diagnostic-settings create. L’exemple suivant journalise les données de catégorie événements et compteur dans un espace de travail existant appelé myWorkspace, qui se trouve dans un groupe de ressources appelé myWorkspaces. Il utilise l’ID du groupe de sécurité réseau que vous avez enregistré à l’aide de la commande précédente.

az monitor diagnostic-settings create \
  --name myNsgDiagnostics \
  --resource $nsgId \
  --logs '[ { "category": "NetworkSecurityGroupEvent", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "NetworkSecurityGroupRuleCounter", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
  --workspace myWorkspace \
  --resource-group myWorkspaces

Si vous n’avez pas d’espace de travail, créez-en un à l’aide du portail Azure ou de PowerShell. Il existe deux catégories de journalisation pour lesquelles vous pouvez activer les journaux d’activité.

Si vous souhaitez journaliser les données d’une seule des deux catégories, supprimez l’autre catégorie de la commande précédente. Si vous voulez journaliser les données dans une autre destination que celle d’un espace de travail Log Analytics, utilisez un paramètre approprié. Pour plus d’informations, consultez la page Journaux de ressources dans Azure.

Consultez et analysez les journaux d’activité. Pour plus d’informations, voir Afficher et analyser les journaux d’activité.

Destinations des journaux

Vous pouvez envoyer des données de diagnostics aux options suivantes :

Catégories de journal

Les données au format JSON sont écrites pour les catégories de journaux suivantes : événements et compteur de règle.

Événement

Le journal des événements contient des informations sur les règles des groupes de sécurité réseau qui sont appliquées aux machines virtuelles, en fonction de l’adresse MAC. Les données suivantes sont enregistrées pour chaque événement. Dans l’exemple suivant, les données sont enregistrées pour une machine virtuelle avec l’adresse IP 192.168.1.4 et l’adresse MAC 00-0D-3A-92-6A-7C :

{
    "time": "[DATE-TIME]",
    "systemId": "[ID]",
    "category": "NetworkSecurityGroupEvent",
    "resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION-ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
    "operationName": "NetworkSecurityGroupEvents",
    "properties": {
        "vnetResourceGuid":"[ID]",
        "subnetPrefix":"192.168.1.0/24",
        "macAddress":"00-0D-3A-92-6A-7C",
        "primaryIPv4Address":"192.168.1.4",
        "ruleName":"[SECURITY-RULE-NAME]",
        "direction":"[DIRECTION-SPECIFIED-IN-RULE]",
        "priority":"[PRIORITY-SPECIFIED-IN-RULE]",
        "type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
        "conditions":{
            "protocols":"[PROTOCOLS-SPECIFIED-IN-RULE]",
            "destinationPortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
            "sourcePortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
            "sourceIP":"[SOURCE-IP-OR-RANGE-SPECIFIED-IN-RULE]",
            "destinationIP":"[DESTINATION-IP-OR-RANGE-SPECIFIED-IN-RULE]"
            }
        }
}

Compteur de règles

Le journal du compteur de règles contient des informations sur chacune des règles appliquées aux ressources. Les données de l’exemple suivant sont enregistrées chaque fois qu’une règle est appliquée. Dans l’exemple suivant, les données sont enregistrées pour une machine virtuelle avec l’adresse IP 192.168.1.4 et l’adresse MAC 00-0D-3A-92-6A-7C :

{
    "time": "[DATE-TIME]",
    "systemId": "[ID]",
    "category": "NetworkSecurityGroupRuleCounter",
    "resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
    "operationName": "NetworkSecurityGroupCounters",
    "properties": {
        "vnetResourceGuid":"[ID]",
        "subnetPrefix":"192.168.1.0/24",
        "macAddress":"00-0D-3A-92-6A-7C",
        "primaryIPv4Address":"192.168.1.4",
        "ruleName":"[SECURITY-RULE-NAME]",
        "direction":"[DIRECTION-SPECIFIED-IN-RULE]",
        "type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
        "matchedConnections":125
        }
}

Notes

L’adresse IP source pour la communication n’est pas enregistrée. Vous pouvez activer la journalisation des flux NSG d’un groupe de sécurité réseau ; il journalise toutes les informations du compteur de règle et l’adresse IP source qui a initié la communication. Les données du journal de flux NSG sont écrites dans un compte Stockage Azure. Vous pouvez analyser les données avec la fonctionnalité d’analytique du trafic d’Azure Network Watcher.

Afficher et analyser les journaux d’activité

Si vous envoyez des données de diagnostic à :

  • Journaux d’activité Azure Monitor : vous pouvez utiliser la solution d’analytique de groupe de sécurité réseau pour obtenir des insights plus poussés. La solution offre des visualisations pour les règles NSG qui autorisent ou refusent le trafic, par adresse MAC, de l’interface réseau sur une machine virtuelle.

  • Compte de stockage Azure : les données sont écrites dans un fichier PT1H.json. Vous pouvez trouver le :

    • Journal des événements qui se trouve dans le chemin suivant : insights-logs-networksecuritygroupevent/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT. NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
    • Journal du compteur de règle qui se trouve dans le chemin suivant : insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT. NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]

Pour savoir comment afficher les données des journaux de ressources, consultez Vue d’ensemble des journaux de la plateforme Azure.

Étapes suivantes

  • Pour plus d’informations sur la journalisation d’activité, consultez Vue d’ensemble des journaux d’une plateforme Azure.

    La journalisation des activités est activée par défaut pour les groupes de sécurité réseau créés au moyen d’un modèle de déploiement Azure. Pour déterminer les opérations qui ont été effectuées sur les groupes de sécurité réseau dans le journal d’activité, recherchez les entrées qui contiennent les types de ressources suivants :

    • Microsoft.ClassicNetwork/networkSecurityGroups
    • Microsoft.ClassicNetwork/networkSecurityGroups/securityRules
    • Microsoft.Network/networkSecurityGroups
    • Microsoft.Network/networkSecurityGroups/securityRules
  • Pour savoir comment journaliser des informations de diagnostic, consultez Journaliser le trafic réseau vers et depuis une machine virtuelle à l'aide du portail Azure.