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

Os logs de fluxo do grupo de segurança de rede são um recurso do Observador de Rede do Azure que permite registrar informações sobre o tráfego IP que flui por meio 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, confira Visão geral dos logs de fluxo do NSG.

Neste artigo, você aprenderá a gerenciar os logs de fluxo do NSG programaticamente usando um modelo do Azure Resource Manager e o Azure PowerShell. Você pode aprender como gerenciar um log de fluxo de NSG usando o portal do Azure, o PowerShell, a CLI do Azure ou a 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 uma sintaxe declarativa.

Pré-requisitos

Objeto de logs de fluxo NSG

O objeto de logs de fluxo do NSG com todos os parâmetros é mostrado no exemplo a seguir. Para obter uma visão geral completa das propriedades do objeto, confira a referência do modelo de logs de fluxo do 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.

Criar seu modelo

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

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

Exemplo 1

O exemplo 1 usa a versão mais simples do modelo do ARM com a transmissão de um mínimo de parâmetros. o modelo a seguir habilita os logs de fluxo do NSG em um grupo de segurança 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": {}
    }

  }
  ]
}

Observação

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

Exemplo 2

O exemplo 2 usa o modelo a seguir para habilitar logs de fluxo do NSG (versão 2) com uma 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
        }
      }
    }
  ]
}

Observação

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

Implantando o 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 de destino no qual possa habilitar o registro dos logs de fluxo. Você pode salvar qualquer um dos modelos do exemplo acima localmente como azuredeploy.json. Atualize os valores da 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"

Observação

Os comandos anteriores implantam um recurso no grupo de recursos NetworkWatcherRG e não no grupo de recursos contendo o grupo de segurança de rede (NSG).

Verificar a implantação

Existem algumas maneiras de verificar se a sua implantação foi bem-sucedida. O console do PowerShell deve mostrar “ProvisioningState” como “Bem-sucedido”. Além disso, você pode acessar a página do portal de logs de fluxo para confirmar suas alterações. Se houver problemas com a implantação, confira Solucionar problemas 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 Completo. Para excluir um recurso de logs de fluxo, especifique uma implantação no modo Completo sem incluir o recurso que você quer excluir. Para obter mais informações, confira Modo de implantação Completo.

Próximas etapas