Gerenciar logs de fluxo NSG usando a API REST
Importante
Em 30 de setembro de 2027, os logs de fluxo do grupo de segurança de rede (NSG) serão desativados. Como parte dessa desativação, você não poderá mais criar novos logs de fluxo do NSG a partir de 30 de junho de 2025. Recomendamos migrar para logs de fluxo de rede virtual, que superam as limitações dos logs de fluxo NSG. Após a data de desativação, a análise de tráfego habilitada com logs de fluxo NSG não será mais suportada e os recursos existentes de logs de fluxo NSG em suas assinaturas serão excluídos. No entanto, os registros de logs de fluxo do NSG não serão excluídos e continuarão a seguir suas respetivas políticas de retenção. Para obter mais informações, veja o anúncio oficial.
O log de fluxo do grupo de segurança de rede é um recurso do Observador de Rede do Azure que permite registrar informações sobre o tráfego IP que flui através 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, consulte Visão geral dos logs de fluxo do NSG.
Este artigo mostra como usar a API REST para habilitar, desabilitar e consultar logs de fluxo usando a API REST. Você pode aprender a gerenciar um log de fluxo NSG usando o portal do Azure, PowerShell, CLI do Azure ou modelo ARM.
Neste artigo, uou aprender a:
- Ativar logs de fluxo (Versão 2)
- Desativar logs de fluxo
- Status dos logs de fluxo de consulta
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- ARMClient. ARMClient é uma ferramenta de linha de comando simples para invocar a API do Azure Resource Manager. Para instalar a ferramenta, consulte ARMClient. Para obter especificações detalhadas da API REST dos logs de fluxo do NSG, consulte Logs de fluxo - API REST
Importante
Quando você faz chamadas de API REST para o Inspetor de Rede, o nome do grupo de recursos no URI de solicitação refere-se ao grupo de recursos que contém o Inspetor de Rede, não aos recursos nos quais você está executando as ações de diagnóstico.
Iniciar sessão com a ARMClient
Entre no armclient com suas credenciais do Azure.
armclient login
Registar o fornecedor do Insights
O provedor Microsoft.Insights deve ser registrado para registrar com êxito o tráfego que flui através de um grupo de segurança de rede. Se você não tiver certeza se o provedor Microsoft.Insights está registrado, use Providers - Register REST API para registrá-lo.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
Habilitar logs de fluxo NSG
O comando para habilitar logs de fluxo versão 2 é mostrado no exemplo a seguir. Para a versão 1, substitua o campo «versão» por «1»:
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{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=2022-11-01" $requestBody
A resposta retornada do exemplo anterior é a seguinte:
{
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": true,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Nota
- A API REST Network Watchers - set Flow Log Configuration usada no exemplo anterior é antiga e pode ser preterida em breve.
- É recomendável usar os novos Logs de fluxo - Criar ou atualizar a API REST para criar ou atualizar logs de fluxo.
Desativar os registos do fluxo do NSG
Use o exemplo a seguir para desabilitar logs de fluxo. A chamada é a mesma que habilitar logs de fluxo, exceto false é definido para a propriedade enabled.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{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=2022-11-01" $requestBody
A resposta retornada do exemplo anterior é a seguinte:
{
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": false,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Nota
- A API REST Network Watchers - set Flow Log Configuration usada no exemplo anterior é antiga e pode ser preterida em breve.
- Recomenda-se usar o novo recurso Flow Logs - Create Or Update REST API para desabilitar logs de fluxo e Flow Logs - Delete REST API para excluir logs de fluxo.
Logs de fluxo de consulta
A chamada REST a seguir consulta o status dos logs de fluxo em um grupo de segurança de rede.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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=2022-11-01" $requestBody
O exemplo a seguir mostra a resposta retornada:
{
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": true,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Nota
- A API REST Network Watchers - Get Flow Log Status usada no exemplo anterior requer uma permissão de leitor adicional no grupo de recursos do inspetor de rede. Além disso, esta API é antiga e pode ser preterida em breve.
- Recomenda-se usar os novos Flow Logs - Get REST API para consultar logs de fluxo.
Baixar um registro de fluxo
O local de armazenamento de um log de fluxo é definido na criação. Uma ferramenta conveniente para acessar logs de fluxo salvos em uma conta de armazenamento é o Gerenciador de Armazenamento do Microsoft Azure. Para obter mais informações, consulte Introdução ao Gerenciador de Armazenamento.
Se uma conta de armazenamento for especificada, os arquivos de captura de pacotes serão salvos em uma conta de armazenamento no seguinte local:
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
Próximos passos
- Para saber como usar as políticas internas do Azure para auditar ou implantar logs de fluxo do NSG, consulte Gerenciar logs de fluxo do NSG usando a Política do Azure.
- Para saber mais sobre a análise de tráfego, consulte Análise de tráfego.