Partilhar via


Guia de início rápido: configurar logs de fluxo do NSG usando um modelo do Azure Resource Manager (ARM)

Importante

Os logs de fluxo do grupo de segurança de rede (NSG) serão desativados em 30 de setembro de 2027. Após 30 de junho de 2025, você não poderá mais criar novos logs de fluxo NSG. Recomendamos migrar para logs de fluxo de rede virtual, que abordam as limitações dos logs de fluxo NSG. Após a data de desativação, a análise de tráfego habilitada para logs de fluxo NSG não será mais suportada e os recursos existentes do log de fluxo NSG em suas assinaturas serão excluídos. No entanto, os registros de log de fluxo NSG existentes não serão excluídos do Armazenamento do Azure e continuarão a seguir suas políticas de retenção configuradas. Para obter mais informações, veja o anúncio oficial.

Neste guia de início rápido, você aprenderá a habilitar os logs de fluxo do NSG usando um modelo do Azure Resource Manager (ARM) e o Azure PowerShell. Para obter mais informações, consulte 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 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 de log de fluxo do NSG. Nós fornecemos modelos de exemplo. Em seguida, usamos uma instância local do Azure PowerShell para implantar o modelo.

Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo é aberto no portal do Azure.

Botão para implantar o modelo do Gerenciador de Recursos no Azure.

Pré-requisitos

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

Rever o modelo

O modelo que usamos neste início rápido é 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 são definidos no modelo:

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

Implementar o modelo

Este tutorial parte do princípio de que tem um grupo de recursos existente e um NSG onde pode habilitar o registo de fluxo.

Você pode salvar qualquer um dos modelos de exemplo mostrados neste artigo localmente como azuredeploy.json. Atualize os valores de propriedade para que eles apontem para recursos válidos em sua 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 implementação

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

  • O seu console do PowerShell mostra ProvisioningState como Succeeded.
  • Vá para a página do portal de logs de fluxo NSG para confirmar as suas alterações.

Se houve problemas com a implantação, consulte Solucionar erros comuns de implantação do Azure com o Azure Resource Manager.

Limpeza de recursos

Você pode excluir 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 você deseja excluir. Leia mais sobre o modo de implantação completo.

Você também pode desabilitar ou excluir um log de fluxo no portal do Azure:

  1. Na caixa de pesquisa na parte superior do portal, digite observador de rede. Selecione Inspetor de Rede nos resultados da pesquisa.

  2. Em Logs, selecione Logs de fluxo.

  3. No Observador de Rede | Logs de fluxo, selecione a caixa de seleção do registo de fluxo que pretende eliminar.

  4. Selecione Desativar ou Excluir. Para obter mais informações, consulte Desabilitar um log de fluxo ou Excluir um log de fluxo.

Neste guia de início rápido, você aprendeu como habilitar logs de fluxo NSG usando um modelo ARM. Em seguida, saiba como visualizar seus dados de fluxo NSG usando a análise de tráfego: