Administración de registros de flujo de grupo de seguridad de red con la API REST
Los registros de flujo de grupos de seguridad de red son una característica de Azure Network Watcher que le permite registrar información sobre el tráfico de IP que pasa por un grupo de seguridad de red. Para obtener más información sobre el registro de flujo del grupo de seguridad de red, consulte Información general sobre registros de flujo de NSG.
En este artículo se muestra cómo usar la API de REST para habilitar, deshabilitar y consultar los registros de flujo mediante la API de REST. Puede aprender a administrar un registro de flujo de NSG mediante Azure Portal, PowerShell, la CLI de Azure o la plantilla de ARM.
En este artículo aprenderá a:
- Habilitar registros de flujo (versión 2)
- Deshabilitar los registros de flujo
- Consultar el estado de los registros de flujo
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- ARMClient. ARMClient es una sencilla herramienta de línea de comandos para invocar la API de Azure Resource Manager. Para instalar la herramienta, consulte ARMClient. Para obtener especificaciones detalladas de la API REST de registros de flujo de NSG, consulte Registros de flujo: API REST.
Importante
Al realizar llamadas API REST a Network Watcher, el nombre del grupo de recursos en el identificador URI de la solicitud se refiere al grupo de recursos que contiene Network Watcher, y no los recursos sobre los que realiza las acciones de diagnóstico.
Inicio de sesión con ARMClient
Inicie sesión en armclient con las credenciales de Azure.
armclient login
Registro del proveedor de Insights
Se debe registrar el proveedor de Microsoft.Insights para registrar correctamente el tráfico que fluye mediante un grupo de seguridad de red. Si no sabe si el proveedor Microsoft.Insights está registrado, use la API REST de Proveedores: registro para registrarlo.
$subscriptionId = "00000000-0000-0000-0000-000000000000"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
Enable NSG flow logs (Habilitar registros de flujo del grupo de seguridad de red)
En el ejemplo siguiente se muestra el comando para habilitar la versión 2 de los registros de flujo. Para la versión 1, reemplace el campo "versión" por "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=2022-11-01" $requestBody
La respuesta devuelta por el ejemplo anterior es la siguiente:
{
"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
}
}
}
Nota
- La API REST Network Watcher: Definir la configuración del registro de flujo que se utilizó en el ejemplo anterior es antigua y puede que pronto quede en desuso.
- En su lugar, se recomienda usar la API REST Registros de flujo: Crear o actualizar para crear o actualizar los registros de flujo.
Deshabilitar los registros de flujo de NSG
Use el ejemplo siguiente para deshabilitar los registros de flujo. La llamada es la misma que para habilitar los registros de flujo, excepto que la propiedad activada está establecida en false.
$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=2022-11-01" $requestBody
La respuesta devuelta por el ejemplo anterior es la siguiente:
{
"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
}
}
}
Nota
- La API REST Network Watcher: Definir la configuración del registro de flujo que se utilizó en el ejemplo anterior es antigua y puede que pronto quede en desuso.
- Se recomienda utilizar la API REST Registros de flujo: Crear o actualizar nueva para deshabilitar los registros de flujo y Registros de flujo: Eliminar para eliminar el recurso de registros de flujo.
Consulta del estado de los registros de flujo
La siguiente llamada de REST consulta el estado de los registros de flujo en un grupo de seguridad de red.
$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=2022-11-01" $requestBody
En el ejemplo siguiente se muestra la respuesta devuelta:
{
"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
}
}
}
Nota
- La API REST Network Watcher: Obtener estado del registro de flujo que se utilizó en el ejemplo anterior requiere un permiso de lector adicional en el grupo de recursos de Network Watcher. Además, esta API es antigua y puede que pronto quede en desuso.
- En su lugar, se recomienda usar la API REST Registros de flujo: Obtener para consultar los registros de flujo.
Descarga de un registro de flujo
La ubicación de almacenamiento de un registro de flujo se define en el momento de la creación. Una herramienta práctica para acceder a los registros de flujo guardados en una cuenta de almacenamiento es el Explorador de Microsoft Azure Storage. Para más información, vea Introducción al Explorador de Storage.
Si se especifica una cuenta de almacenamiento, los archivos de captura de paquetes se guardan en una cuenta de almacenamiento en la siguiente ubicación:
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
Pasos siguientes
- Para descubrir cómo usar directivas integradas de Azure a fin de auditar o implementar registros de flujo de NSG, vea Administración de registros de flujo de NSG mediante Azure Policy.
- Para más información sobre el análisis de tráfico, vea Análisis de tráfico.