Partilhar via


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

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 utiliza 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 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 subscrição 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 é de 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 pressupõe que você tenha um grupo de recursos existente e um NSG que possa habilitar o logon 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"

Nota

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:

  • Seu console do PowerShell é exibido ProvisioningState como Succeeded.
  • Vá para a página do portal de logs de fluxo NSG 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.

Clean up resources (Limpar 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, marque a caixa de seleção do log de fluxo que você deseja excluir.

  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: