Configurar registos de fluxo NSG de um modelo de gestor de recursos AzureConfigure NSG Flow Logs from an Azure Resource Manager template

O Azure Resource Manager é a forma nativa e poderosa da Azure de gerir a sua infraestrutura como código.Azure Resource Manager is Azure’s native and powerful way to manage your infrastructure as code.

Este artigo mostra como você pode ativar NSG Flow Logs programáticamente usando um modelo de Gestor de Recursos Azure e Azure PowerShell.This article shows how you to enable NSG Flow Logs programmatically using an Azure Resource Manager template and Azure PowerShell. Começamos por fornecer uma visão geral das propriedades do objeto NSG Flow Log, seguido de alguns modelos de amostra.We start by providing an overview of the properties of the NSG Flow Log object, followed by a few sample templates. Em seguida, nós o modelo de implementação usando uma instância local PowerShell.Then we the deploy template using a local PowerShell instance.

Objeto de registos de fluxo NSGNSG Flow Logs object

O objeto NSG Flow Logs com todos os parâmetros é mostrado abaixo.The NSG Flow Logs object with all parameters is shown below. Para uma visão geral completa das propriedades, pode ler a referência do modelo NSG Flow Logs.For a complete overview of the properties, you may read the NSG Flow Logs template reference.

{
  "name": "string",
  "type": "Microsoft.Network/networkWatchers/flowLogs",
  "location": "string",
  "apiVersion": "2019-09-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 na secção de recursos do seu modelo.To create a Microsoft.Network/networkWatchers/flowLogs resource, add the above JSON to the resources section of your template.

Criando o seu modeloCreating your template

Se estiver a utilizar os modelos do Azure Resource Manager pela primeira vez, pode saber mais sobre eles utilizando os links abaixo.If you are using Azure Resource Manager templates for the first time, you can learn more about them using the links below.

Abaixo estão dois exemplos de modelos completos para configurar registos de fluxo NSG.Below are two examples of complete templates to set up NSG Flow Logs.

Exemplo 1: A versão mais simples do que precede com parâmetros mínimos passados.Example 1: The simplest version of the above with minimum parameters passed. O modelo abaixo permite registos de fluxo NSG num NSG alvo e armazena-os numa determinada conta de armazenamento.The below template enables NSG Flow Logs on a target NSG and stores them in a given storage account.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
 {
    "name": "NetworkWatcher_centraluseuap/Microsoft.NetworkDalanDemoPerimeterNSG",
    "type": "Microsoft.Network/networkWatchers/FlowLogs/",
    "location": "centraluseuap",
    "apiVersion": "2019-09-01",
    "properties": {
      "targetResourceId": "/subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/DalanDemo/providers/Microsoft.Network/networkSecurityGroups/PerimeterNSG",
      "storageId": "/subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/MyCanaryFlowLog/providers/Microsoft.Storage/storageAccounts/storagev2ira",
      "enabled": true,
      "flowAnalyticsConfiguration": {},
      "retentionPolicy": {},
      "format": {}
    }

  }
  ]
}

Nota

  • O nome do recurso tem o formato "Recurso Resource_Child dos pais".The name of resource has the format "Parent Resource_Child resource". Aqui, o recurso principal é a instância regional do Observador de Rede (Formato: NetworkWatcher_RegionName.Here, the parent resource is the regional Network Watcher instance (Format: NetworkWatcher_RegionName. Exemplo: NetworkWatcher_centraluseuap)Example: NetworkWatcher_centraluseuap)
  • targetResourceId é o ID de recurso do NSG alvotargetResourceId is the resource ID of the target NSG
  • storageId é o ID de recursos da conta de armazenamento de destinostorageId is the resource ID of the destination storage account

Exemplo 2: Os seguintes modelos que permitem registos de fluxo NSG (versão 2) com uma retenção durante 5 dias.Example 2: The following templates enabling NSG Flow Logs (version 2) with a retention for 5 days. Ativar o Traffic Analytics com um intervalo de processamento de 10 minutos.Enabling Traffic Analytics with a processing interval of 10 minutes.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
    {
      "name": "NetworkWatcher_centraluseuap/Microsoft.NetworkDalanDemoPerimeterNSG",
      "type": "Microsoft.Network/networkWatchers/FlowLogs/",
      "location": "centraluseuap",
      "apiVersion": "2019-09-01",
      "properties": {
        "targetResourceId": "/subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/DalanDemo/providers/Microsoft.Network/networkSecurityGroups/PerimeterNSG",
        "storageId": "/subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/MyCanaryFlowLog/providers/Microsoft.Storage/storageAccounts/storagev2ira",
        "enabled": true,
        "flowAnalyticsConfiguration": {
          "networkWatcherFlowAnalyticsConfiguration": {
            "enabled": true,
            "workspaceResourceId": "/subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/defaultresourcegroup-wcus/providers/Microsoft.OperationalInsights/workspaces/1c4f42e5-3a02-4146-ac9b-3051d8501db0",
            "trafficAnalyticsInterval": 10
          }
        },
        "retentionPolicy": {
          "days": 5,
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": 2
        }
      }
    }
  ]
}

Implementar o seu modelo do Azure Resource ManagerDeploying your Azure Resource Manager template

Este tutorial pressupõe que tem um grupo de Recursos existente e um NSG que pode ativar o fluxo de iniciar sessão.This tutorial assumes you have an existing Resource group and an NSG you can enable Flow logging on. Pode guardar qualquer um dos modelos de exemplo acima localmente como azuredeploy.json .You can save any of the above example templates locally as azuredeploy.json. Atualize os valores da propriedade para que apia recursos válidos na sua subscrição.Update the property values so that they point to valid resources in your subscription.

Para implementar o modelo, executar o seguinte comando em PowerShell.To deploy the template, run the following command in PowerShell.

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

Nota

Os comandos acima estão a implantar um recurso para o grupo de recursos NetworkWatcherRG e não para o grupo de recursos que contém o NSGThe above commands are deploying a resource to the NetworkWatcherRG resource group and not the resource group containing the NSG

Verificação da sua implantaçãoVerifying your deployment

Há algumas maneiras de verificar se a sua implantação foi bem sucedida.There are a couple of ways to check if your deployment has Succeeded. A sua consola PowerShell deve mostrar "ProvisioningState" como "Bem sucedido".Your PowerShell console should show "ProvisioningState" as "Succeeded". Além disso, pode visitar a página do portal NSG Flow Logs para confirmar as suas alterações.Additionally, you can visit the NSG Flow Logs portal page to confirm your changes. Se houver problemas com a implantação, dê uma olhada nos erros comuns de implementação do Azure com o Azure Resource Manager.If there were issues with the deployment, take a look at Troubleshoot common Azure deployment errors with Azure Resource Manager.

Apagar o seu recursoDeleting your resource

O Azure permite a eliminação de recursos através do modo de implementação "Completo".Azure enables resource deletion through the "Complete" deployment mode. Para eliminar um recurso Flow Logs, especifique uma implementação no modo Completo sem incluir o recurso que pretende eliminar.To delete a Flow Logs resource, specify a deployment in Complete mode without including the resource you wish to delete. Leia mais sobre o modo de implementação completoRead more about the Complete deployment mode

Passos seguintesNext steps

Saiba como visualizar os seus dados NSG Flow utilizando:Learn how to visualize your NSG Flow data using: