Guia de Início Rápido: configuração de logs de fluxo do grupo de segurança de rede (NSG) do Observador de Rede do Azure usando um modelo do Azure Resource Manager (ARM)

Neste guia rápido, você vai aprender a habilitar logs de fluxo do NSG usando um modelo do Azure Resource Manager (ARM) e o Azure PowerShell. Para obter mais informações, confira O que é o Azure Resource Manager? e Visão geral dos logs de fluxo do NSG.

Um Modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Começamos com uma visão geral das propriedades do objeto do log de fluxo do NSG. Fornecemos modelos de amostra. Em seguida, usamos uma instância local do Azure PowerShell para implantar o modelo.

Se seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure. O modelo é aberto no portal do Azure.

Botão para implantar o modelo do Resource Manager no Azure.

Pré-requisitos

Uma conta do Azure com uma assinatura ativa. Se você não tiver uma, crie uma conta gratuita antes de começar.

Examinar o modelo

O modelo que usamos neste início rápido é proveniente dos Modelos de Início Rápido do 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'))]"
      ]
    }
  ]
}

Os seguintes recursos do Azure estão definidos no modelo:

O código realçado no exemplo anterior mostra uma definição de recurso de logs de fluxo NSG.

Implantar o modelo

Este tutorial pressupõe que você tem um grupo de recursos existente e um NSG no qual pode habilitar o log de fluxo.

Você pode salvar qualquer um dos modelos de exemplo mostrados neste artigo localmente como azuredeploy.json. Atualize os valores da propriedade a fim de que eles apontem para recursos válidos da assinatura.

Para implantar o modelo, execute o seguinte comando no Azure PowerShell:

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

Observação

Esses comandos implantam um recurso no grupo de recursos NetworkWatcherRG e não no grupo de recursos que contém o grupo de segurança de rede.

Validar a implantação

Você tem duas opções para ver se a implantação foi bem-sucedida:

Se houver problemas com a implantação, confira Solucionar problemas comuns de implantação do Azure com o Azure Resource Manager.

Limpar os recursos

Você pode excluir os recursos do Azure usando o modo de implantação completo. Para excluir um recurso de log de fluxo, especifique uma implantação no modo completo sem incluir o recurso que deseja excluir. Leia mais sobre o modo de implantação completo.

Também é possível desativar ou excluir um log de fluxo diretamente no portal do Azure:

  1. Na caixa de pesquisa na parte superior do portal, insira Observador de Rede. Selecione Observador de Rede nos resultados da pesquisa.

  2. Em Logs, selecione Logs de fluxo.

  3. Em Observador de Rede | Logs de fluxo, marque a caixa de seleção do log de fluxo que você deseja excluir.

  4. Selecione Desabilitar ou Excluir. Para mais informações, confira Como desativar um log de fluxo ou Como excluir um log de fluxo.

Neste guia de início rápido, você aprendeu a habilitar os logs de fluxo do NSG usando um modelo do ARM. Agora, aprenda a visualizar os dados de fluxo do seu NSG usando a análise de tráfego: