Configurar registos de fluxo do Grupo de Segurança da Rede usando API RESTConfiguring Network Security Group flow logs using REST API

Os registos de fluxo do Grupo de Segurança de Rede são uma funcionalidade do Network Watcher que lhe permite visualizar informações sobre o tráfego IP de entrada e saída através de um Grupo de Segurança de Rede.Network Security Group flow logs are a feature of Network Watcher that allows you to view information about ingress and egress IP traffic through a Network Security Group. Estes registos de fluxo são escritos em formato json e mostram fluxos de saída e entrada por regra, o NIC o fluxo aplica-se a, 5-tuple informações sobre o fluxo (Source/Destination IP, Source/Destination Port, Protocol), e se o tráfego foi permitido ou negado.These flow logs are written in json format and show outbound and inbound flows on a per rule basis, the NIC the flow applies to, 5-tuple information about the flow (Source/Destination IP, Source/Destination Port, Protocol), and if the traffic was allowed or denied.

Antes de começarBefore you begin

A ARMclient é utilizada para chamar a API REST usando o PowerShell.ARMclient is used to call the REST API using PowerShell. ARMClient é encontrado em chocolate na ARMClient on Chocolatey.ARMClient is found on chocolatey at ARMClient on Chocolatey. As especificações detalhadas dos registos de fluxo NSG REST API podem ser encontradas aquiThe detailed specifications of NSG flow logs REST API can be found here

Este cenário pressupõe que já seguiu os passos na Criação de um Observador de Rede para criar um Observador de Rede.This scenario assumes you have already followed the steps in Create a Network Watcher to create a Network Watcher.

Importante

Para o Observador de Rede REST A API chama o nome do grupo de recursos no pedido URI é o grupo de recursos que contém o Observador de Rede, e não os recursos em que está a realizar as ações de diagnóstico.For Network Watcher REST API calls the resource group name in the request URI is the resource group that contains the Network Watcher, not the resources you are performing the diagnostic actions on.

ScenarioScenario

O cenário abordado neste artigo mostra-lhe como ativar, desativar e consultar registos de fluxo de consulta utilizando a API REST.The scenario covered in this article shows you how to enable, disable, and query flow logs using the REST API. Para saber mais sobre os registos de fluxo do Grupo de Segurança de Rede, visite a rede de registo de fluxos do Grupo de Segurança - Visão geral.To learn more about Network Security Group flow loggings, visit Network Security Group flow logging - Overview.

Neste cenário, irá:In this scenario, you will:

  • Ativar os registos de fluxo (versão 2)Enable flow logs (Version 2)
  • Desativar registos de fluxoDisable flow logs
  • Estado dos registos de fluxo de consultaQuery flow logs status

Iniciar sessão com ARMClientLog in with ARMClient

Faça login no braço com as suas credenciais Azure.Log in to armclient with your Azure credentials.

armclient login

Registar o fornecedor do InsightsRegister Insights provider

Para que a exploração de fluxo funcione com sucesso, o fornecedor Microsoft.Insights tem de estar registado.In order for flow logging to work successfully, the Microsoft.Insights provider must be registered. Se não tiver a certeza se o fornecedor Microsoft.Insights está registado, execute o seguinte script.If you are not sure if the Microsoft.Insights provider is registered, run the following script.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2016-09-01"

Ativar registos de fluxo do Grupo de Segurança de RedeEnable Network Security Group flow logs

O comando para ativar os registos de fluxo versão 2 é mostrado no exemplo seguinte.The command to enable flow logs version 2 is shown in the following example. Para a versão 1 substitua o campo 'versão' por '1':For version 1 replace the 'version' field with '1':

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'true',
    'retentionPolicy' : {
            days: 5,
            enabled: true
        },
    'format': {
        'type': 'JSON',
        'version': 2
    }
    }
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2016-12-01" $requestBody

A resposta devolvida do exemplo anterior é a seguinte:The response returned from the preceding example is as follows:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Registos de fluxo do Grupo de Segurança da Rede de DesativaçãoDisable Network Security Group flow logs

Utilize o seguinte exemplo para desativar os registos de fluxo.Use the following example to disable flow logs. A chamada é a mesma que permitir registos de fluxo, exceto que falso está definido para a propriedade ativada.The call is the same as enabling flow logs, except false is set for the enabled property.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'false',
    'retentionPolicy' : {
            days: 5,
            enabled: true
        },
    'format': {
        'type': 'JSON',
        'version': 2
    }
    }
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2016-12-01" $requestBody

A resposta devolvida do exemplo anterior é a seguinte:The response returned from the preceding example is as follows:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": false,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Troncos de fluxo de consultaQuery flow logs

A chamada REST seguinte consulta o estado dos registos de fluxo num Grupo de Segurança de Rede.The following REST call queries the status of flow logs on a Network Security Group.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/queryFlowLogStatus?api-version=2016-12-01" $requestBody

Segue-se um exemplo da resposta devolvida:The following is an example of the response returned:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
   "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Faça o download de um registo de fluxoDownload a flow log

A localização de armazenamento de um registo de fluxo é definida na criação.The storage location of a flow log is defined at creation. Uma ferramenta conveniente para aceder a estes registos de fluxo guardados numa conta de armazenamento é o Microsoft Azure Storage Explorer, que pode ser descarregado aqui: https://storageexplorer.com/A convenient tool to access these flow logs saved to a storage account is Microsoft Azure Storage Explorer, which can be downloaded here: https://storageexplorer.com/

Se uma conta de armazenamento for especificada, os ficheiros de captura de pacotes são guardados numa conta de armazenamento no seguinte local:If a storage account is specified, packet capture files are saved to a storage account at the following location:

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{nsgName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

Passos seguintesNext steps

Saiba como visualizar os seus registos de fluxo NSG com o PowerBILearn how to Visualize your NSG flow logs with PowerBI

Saiba como visualizar os seus registos de fluxo NSG com ferramentas de código abertoLearn how to Visualize your NSG flow logs with open source tools