Administración de registros de flujo de grupo de seguridad de red con la API REST
Importante
El 30 de septiembre de 2027, se retirarán los registros de flujo del grupo de seguridad de red (NSG). Como parte de esta retirada, ya no podrá crear nuevos registros de flujo de NSG a partir del 30 de junio de 2025. Se recomienda migrar a los registros de flujo de red virtual, lo que supera las limitaciones de los registros de flujo de NSG. Después de la fecha de retirada, el análisis de tráfico habilitado con los registros de flujo de NSG ya no se admitirá y se eliminarán los recursos de registros de flujo de NSG existentes en las suscripciones. Sin embargo, los registros de flujo de NSG no se eliminarán y seguirán siguiendo sus respectivas directivas de retención. Para obtener más información, consulte el anuncio oficial.
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 = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
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 = "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
La respuesta devuelta por el ejemplo anterior es la siguiente:
{
"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
- 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 = "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
La respuesta devuelta por el ejemplo anterior es la siguiente:
{
"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
- 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 = "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
En el ejemplo siguiente se muestra la respuesta devuelta:
{
"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
- 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.