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

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/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 é 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/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 é 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