Gerenciar logs de fluxo NSG usando um modelo do Azure Resource Manager

Importante

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

O log de fluxo do grupo de segurança de rede é um recurso do Observador de Rede do Azure que permite registrar informações sobre o tráfego IP que flui através de um grupo de segurança de rede. Para obter mais informações sobre o log de fluxo do grupo de segurança de rede, consulte Visão geral dos logs de fluxo do NSG.

Neste artigo, você aprenderá a gerenciar logs de fluxo do NSG programaticamente usando um modelo do Azure Resource Manager e o Azure PowerShell. Você pode aprender a gerenciar um log de fluxo NSG usando o portal do Azure, PowerShell, CLI do Azure ou API REST.

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto usando sintaxe declarativa.

Pré-requisitos

Objeto de logs de fluxo NSG

O objeto de logs de fluxo NSG com todos os parâmetros é mostrado no exemplo a seguir. Para obter uma visão geral completa das propriedades do objeto, consulte Referência de modelo de logs de fluxo 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 criar um recurso Microsoft.Network/networkWatchers/flowLogs, adicione o JSON acima à seção de recursos do seu modelo.

Crie o seu modelo

Para saber mais sobre como usar modelos do Azure Resource Manager, consulte:

Os exemplos a seguir apresentam modelos completos para habilitar logs de fluxo NSG.

Exemplo 1

O Exemplo 1 usa a versão mais simples do modelo ARM com parâmetros mínimos passados. O modelo a seguir habilita os logs de fluxo NSG em um grupo de segurança de rede de destino e os armazena em uma determinada conta de armazenamento.

{
  "$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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
      "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
      "enabled": true,
      "flowAnalyticsConfiguration": {},
      "retentionPolicy": {},
      "format": {}
    }

  }
  ]
}

Nota

  • targetResourceId é o ID do recurso do grupo de segurança de rede de destino.
  • storageId é o ID do recurso da conta de armazenamento de destino.

Exemplo 2

O Exemplo 2 usa o modelo a seguir para habilitar logs de fluxo NSG (versão 2) com retenção de 5 dias e análise de tráfego com um intervalo de processamento 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
        "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        "enabled": true,
        "flowAnalyticsConfiguration": {
          "networkWatcherFlowAnalyticsConfiguration": {
            "enabled": true,
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/defaultresourcegroup-eus/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-EUS",
            "trafficAnalyticsInterval": 10
          }
        },
        "retentionPolicy": {
          "days": 5,
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": 2
        }
      }
    }
  ]
}

Nota

  • targetResourceId é o ID do recurso do grupo de segurança de rede de destino.
  • storageId é o ID do recurso da conta de armazenamento de destino.
  • workspaceResourceId is é o ID do recurso do espaço de trabalho de análise de tráfego.

Implantar seu modelo do Azure Resource Manager

Este tutorial pressupõe que você tenha um grupo de recursos existente e um grupo de segurança de rede que você pode habilitar o logon de fluxo. Você pode salvar qualquer um dos modelos de exemplo acima 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 PowerShell.

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

Nota

Os comandos anteriores 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.

Verificar sua implantação

Há algumas maneiras de verificar se sua implantação foi bem-sucedida. Seu console do PowerShell deve mostrar "ProvisioningState" como "Succeeded". Além disso, você pode visitar a página do portal Logs de fluxo para confirmar suas alterações. Se houve problemas com a implantação, consulte Solucionar erros comuns de implantação do Azure com o Azure Resource Manager.

Excluir seu recurso

O Azure permite a exclusão de recursos por meio do modo de implantação Completa . Para excluir um recurso de logs de fluxo, especifique uma implantação no modo Concluído sem incluir o recurso que você deseja excluir. Para obter mais informações, consulte Modo de implantação completo.

Próximos passos