Inicio rápido: Configuración de registros de flujo de grupo de seguridad de red de Network Watcher mediante una plantilla de Azure Resource Manager (ARM)

En este inicio rápido, aprenderá a habilitar registros de flujo de grupo de seguridad de red con una plantilla de Azure Resource Manager (ARM) y Azure PowerShell. Para más información, consulte ¿Qué es Azure Resource Manager? e Introducción a los registros de flujo de grupo de seguridad de red.

Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Se describe la implementación deseada sin escribir la secuencia de comandos de programación para crear la implementación.

Comenzaremos con una información general de las propiedades del objeto de registro de flujo del grupo de seguridad de red. Se proporcionan plantillas de ejemplo. A continuación, usamos una instancia local de Azure PowerShell para implementar la plantilla.

Si su entorno cumple los requisitos previos y está familiarizado con el uso de plantillas de Resource Manager, seleccione el botón Implementar en Azure. La plantilla se abre en Azure Portal.

Botón para implementar la plantilla de Resource Manager en Azure.

Requisitos previos

Una cuenta de Azure con una suscripción activa. Si no tiene una, cree una cuenta gratuita antes de empezar.

Revisión de la plantilla

La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de 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'))]"
      ]
    }
  ]
}

Los recursos siguientes se definen en la plantilla:

El código resaltado en el ejemplo anterior muestra una definición de recursos de registros del flujo de NSG.

Implementación de la plantilla

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 que se muestran en este artículo localmente 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 Azure PowerShell:

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

Nota:

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

Validación de la implementación

Tiene dos opciones para ver si la implementación se realizó correctamente:

Si se produjeron problemas con la implementación, consulte Solución de errores comunes de implementación de Azure con Azure Resource Manager.

Limpieza de recursos

Puede eliminar recursos de Azure mediante el modo de implementación completa. Para eliminar un recurso de registro de flujo, especifique una implementación en modo completo sin incluir el recurso que quiere eliminar. Más información sobre el modo de implementación completo.

También puede deshabilitar o eliminar un registro de flujo en Azure Portal:

  1. En el cuadro de búsqueda que aparece en la parte superior del portal, escriba network watcher. En los resultados de la búsqueda, seleccione Network Watcher.

  2. En Registros, seleccione Registros de flujo.

  3. En Network Watcher | Registros de flujo, seleccione la casilla del registro de flujo que desea eliminar.

  4. Seleccione Deshabilitar o Eliminar. Para más información, consulte Deshabilitación de un registro de flujo o Eliminación de un registro de flujo.

En este inicio rápido ha aprendido a habilitar registros de flujo de grupo de seguridad de red mediante una plantilla de ARM. A continuación, aprenderá a visualizar los datos de flujo del grupo de seguridad de red mediante el análisis del tráfico: