Administración de registros de flujo de NSG a partir de una plantilla de Resource Manager

Los registros de flujo de grupos de seguridad de red son una característica de Azure Network Watcher que le permite registrar información sobre el tráfico de IP que pasa por un grupo de seguridad de red. Para obtener más información sobre el registro de flujo del grupo de seguridad de red, consulte Información general sobre registros de flujo de NSG.

En este artículo, aprenderá a administrar registros de flujo de NSG mediante programación con una plantilla de Azure Resource Manager y Azure PowerShell. Puede aprender a administrar un registro de flujo de NSG mediante Azure Portal, PowerShell, la CLI de Azure o la API de REST.

Una plantilla de Resource Manager es un archivo JSON (notación de objetos JavaScript) que define tanto la infraestructura como la configuración de un proyecto con sintaxis declarativa.

Requisitos previos

Objeto de los registros de flujo de NSG

A continuación se muestra el objeto de los registros de flujo de NSG con todos los parámetros en el siguiente ejemplo. Para obtener una introducción completa de las propiedades del objeto, lea la referencia de la plantilla de registros de flujo de 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"
         }
      }
    }
  }

Para crear un recurso Microsoft.Network/networkWatchers/flowLogs, agregue el JSON anterior a la sección resources de la plantilla.

Creación de la plantilla

Obtenga más información sobre la creación de plantillas Resource Manager:

En los ejemplos siguientes se presentan plantillas completas para habilitar los registros de flujo de NSG.

Ejemplo 1

Ejemplo 1: La versión más simple del código de plantilla de ARM con un número mínimo de parámetros pasados. La siguiente plantilla habilita los registros de flujo de NSG en un grupo de seguridad de red de destino y los almacena en una cuenta de almacenamiento específica.

{
  "$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": {}
    }

  }
  ]
}

Nota

  • targetResourceId es el identificador de recurso del grupo de seguridad de red de destino.
  • storageId es el identificador de recurso de la cuenta de almacenamiento de destino.

Ejemplo 2

En el ejemplo 2 se usa la plantilla siguiente para habilitar los registros de flujo de NSG (versión 2) con retención de 5 días y análisis de tráfico con un intervalo de procesamiento de 10 minutos.

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

Nota

  • targetResourceId es el identificador de recurso del grupo de seguridad de red de destino.
  • storageId es el identificador de recurso de la cuenta de almacenamiento de destino.
  • workspaceResourceId es el identificador de recurso del área de trabajo de análisis de tráfico.

Implementación de la plantilla de Azure Resource Manager

En este tutorial se da por supuesto que tiene un grupo de recursos existente y un grupo de seguridad de red en el que puede habilitar el registro de flujo. Puede guardar cualquiera de las plantillas de ejemplo anteriores de forma local como azuredeploy.json. Actualice los valores de las propiedades para que apunten a recursos válidos de su suscripción.

Para implementar la plantilla, ejecute el siguiente comando en PowerShell.

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

Nota

Los comandos anteriores implementan un recurso en el grupo de recursos NetworkWatcherRG y no en el grupo de recursos que contiene el grupo de seguridad de red.

Comprobación de la implementación

Hay un par de maneras de comprobar si la implementación se ha realizado correctamente. La consola de PowerShell debería mostrar "ProvisioningState" como "Succeeded". Además, puede visitar la página del portal de registros de flujo para confirmar los cambios. Si se produjeron problemas con la implementación, consulte Solución de errores comunes de implementación de Azure con Azure Resource Manager.

Eliminación del recurso

Azure permite la eliminación de recursos mediante el modo de implementación Completo. Para eliminar un recurso de registros de flujo, especifique una implementación en modo Completo sin incluir el recurso que quiere eliminar. Para más información, consulte Modo de implementación Completo.

Pasos siguientes