Gerenciar os logs de fluxo do NSG usando o Azure PowerShell

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 criar, alterar, desabilitar ou excluir um log de fluxo do grupo de segurança de rede usando o Azure PowerShell. Você pode aprender a gerenciar um log de fluxo de NSG por meio do portal do Azure, da CLI do Azure, da API RESTou de um modelo do ARM.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.

  • Provedor de insights. Para obter mais informações, confira Registrar provedor de insights.

  • Um grupo de segurança de rede. Se você precisa criar um grupo de segurança de rede, consulte Criar, alterar ou excluir um grupo de segurança de rede.

  • Uma conta de armazenamento do Azure. Se você precisar criar uma conta de armazenamento, confira Criar uma conta de armazenamento usando o PowerShell.

  • Azure Cloud Shell ou Azure PowerShell instalado localmente.

    • As etapas desse artigo executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure.

    • Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. Este artigo requer o módulo Az do Azure PowerShell. Para obter mais informações, confira Como instalar o Azure PowerShell. Para localizar a versão instalada, execute Get-InstalledModule -Name Az. Se você executar o PowerShell localmente, entre no Azure usando a cmdlet Connect-AzAccount.

Registrar o provedor Insights

O provedor Microsoft.Insights deve ser registrado para registrar com êxito o tráfego de log que flui por meio de um grupo de segurança de rede. Se você não tiver certeza se o provedor Microsoft.Insights está registrado, use Register-AzResourceProvider para registrá-lo.

# Register Microsoft.Insights provider.
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Insights'

Criar um log de fluxo

  1. Obtenha as propriedades do grupo de segurança de rede para o qual você deseja criar o log de fluxo e a conta de armazenamento que deseja usar para armazenar o log de fluxo criado usando Get-AzNetworkSecurityGroup e Get-AzStorageAccount, respectivamente.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    Observação

    • Se a conta de armazenamento estiver em uma assinatura diferente, o grupo de segurança de rede e a conta de armazenamento deverão ser associados ao mesmo locatário do Azure Active Directory. A conta que você usa para cada assinatura deve ter as permissões necessárias.
  2. Crie o log de fluxo usando New-AzNetworkWatcherFlowLog. O log de fluxo é criado no grupo de recursos padrão do Observador de Rede NetworkWatcherRG.

    # Create a version 1 NSG flow log.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true
    

Criar um log de fluxo e um workspace de análise de tráfego

  1. Obtenha as propriedades do grupo de segurança de rede para o qual você deseja criar o log de fluxo e a conta de armazenamento que deseja usar para armazenar o log de fluxo criado usando Get-AzNetworkSecurityGroup e Get-AzStorageAccount, respectivamente.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    Observação

    • A conta de armazenamento não pode ter regras de rede que restrinjam o acesso à rede somente a serviços da Microsoft ou redes virtuais específicas.
    • Se a conta de armazenamento estiver em uma assinatura diferente, o grupo de segurança de rede e a conta de armazenamento deverão ser associados ao mesmo locatário do Azure Active Directory. A conta que você usa para cada assinatura deve ter as permissões necessárias.
  2. Crie um workspace de análise de tráfego usando New-AzOperationalInsightsWorkspace.

    # Create a traffic analytics workspace and place its properties into a variable.
    $workspace = New-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
    
  3. Crie o log de fluxo usando New-AzNetworkWatcherFlowLog. O log de fluxo é criado no grupo de recursos padrão do Observador de Rede NetworkWatcherRG.

    # Create a version 1 NSG flow log with traffic analytics.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId
    

Alterar um log de fluxo

Você pode usar Set-AzNetworkWatcherFlowLog para alterar as propriedades de um log de fluxo. Por exemplo, você pode alterar a versão do log de fluxo ou desabilitar a análise de tráfego.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -FormatVersion 2 

Listar todos os logs de fluxo em uma região

Use Get-AzNetworkWatcherFlowLog para listar todos os recursos de log de fluxo do NSG em uma região específica em sua assinatura.

# Get all NSG flow logs in East US region.
Get-AzNetworkWatcherFlowLog -Location 'eastus' | format-table Name

Observação

Para usar o parâmetro -Location com o cmdlet Get-AzNetworkWatcherFlowLog, você precisa de uma permissão de Leitor adicional no grupo de recursos NetworkWatcherRG.

Exibir detalhes de um recurso de log de fluxo

Use Get-AzNetworkWatcherFlowLog para ver detalhes de um recurso de log de fluxo.

# Get the details of a flow log.
Get-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

Observação

Para usar o parâmetro -Location com o cmdlet Get-AzNetworkWatcherFlowLog, você precisa de uma permissão de Leitor adicional no grupo de recursos NetworkWatcherRG.

Baixar um log de fluxo

O local de armazenamento de um log de fluxo é definido no momento da criação. Para acessar e baixar logs de fluxo de sua conta de armazenamento, você pode usar o Gerenciador de Armazenamento do Azure. Para obter mais informações, confira Introdução ao Gerenciador de Armazenamento.

Os arquivos de log de fluxo do NSG salvos em uma conta de armazenamento seguem este caminho:

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

Para obter informações sobre a estrutura de um log de fluxo, consulte Formato de log dos logs de fluxo do NSG.

Desabilitar um log de fluxo

Para desabilitar temporariamente um log de fluxo sem excluí-lo, use Set-AzNetworkWatcherFlowLog com o parâmetro -Enabled $false. Desabilitar um log de fluxo interrompe o log de fluxo para o grupo de segurança de rede associado. No entanto, o recurso de log de fluxo permanece com todas as suas configurações e associações. Você pode habilitá-lo novamente a qualquer momento para retomar o log de fluxo para o grupo de segurança de rede configurado.

Observação

Se a análise de tráfego estiver habilitada para um log de fluxo, ela deverá ser desabilitada antes que você possa desabilitar o log de fluxo.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id

Excluir um log de fluxo

Para excluir permanentemente um log de fluxo do NSG, use o comando Remove-AzNetworkWatcherFlowLog . Excluir um log de fluxo exclui todas as suas configurações e associações. Para iniciar o registro em log de fluxo novamente para o mesmo grupo de segurança de rede, você deve criar um novo log de fluxo para ele.

# Delete the flow log.
Remove-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

Observação

Excluir um log de fluxo não exclui os dados de log de fluxo da conta de armazenamento. Os dados de logs de fluxo armazenados na conta de armazenamento seguem a política de retenção configurada.

Próximas etapas