Uso de filtros de conexión IP de Azure IoT DPS

La seguridad es un aspecto importante de cualquier solución de IoT. En ciertas ocasiones necesitará especificar explícitamente las direcciones IP desde las que se pueden conectar los dispositivos como parte de la configuración de seguridad. La característica de filtro IP para una instancia de Azure IoT Hub Device Provisioning Service (DPS) le permite configurar reglas para rechazar o aceptar tráfico de direcciones IPv4 específicas.

Cuándo se usa

Hay dos casos específicos en los que resulta útil bloquear las conexiones a un punto de conexión de DPS para determinadas direcciones IP:

  • La instancia de DPS debe recibir tráfico solo de un intervalo concreto de direcciones IP y rechazar todas las demás. Por ejemplo, cuando se usa DPS con Azure ExpressRoute para crear conexiones privadas entre una instancia de DPS y los dispositivos.

  • Cuando necesite rechazar el tráfico de direcciones IP que el administrador de DPS haya identificado como sospechosas.

Limitaciones de las reglas de filtro de IP

Tenga en cuenta las siguientes limitaciones si el filtrado de IP está habilitado:

  • Es posible que no pueda usar Azure Portal para administrar las inscripciones. Si esto ocurre, puede agregar la dirección IP de una o varias máquinas a ipFilterRules y administrar las inscripciones en la instancia de DPS desde esas máquinas con la CLI de Azure, PowerShell o las API del servicio.

    Es más probable que este escenario se produzca cuando quiera usar el filtrado de IP para permitir el acceso solo a las direcciones IP seleccionadas. En este caso, se configuran reglas para habilitar determinadas direcciones o intervalos de direcciones, y una regla predeterminada que bloquea todas las demás direcciones (0.0.0.0/0). Esta regla predeterminada impedirá que Azure Portal realice operaciones como administrar inscripciones en la instancia de DPS. Para obtener más información, consulte Evaluación de las reglas de filtro IP más adelante en este artículo:

Cómo se aplican las reglas de filtro

Las reglas de filtro IP se aplican en el nivel de instancia de DPS. Por lo tanto, las reglas de filtro IP se aplican a todas las conexiones de los dispositivos y aplicaciones de back-end mediante un protocolo admitido.

Cualquier intento de conexión desde una dirección IP que coincida con una regla IP de rechazo en su instancia de DSP recibe un código de estado 401 no autorizado y la descripción. El mensaje de respuesta no menciona la regla IP.

Importante

El rechazo de las direcciones IP puede evitar que otros servicios de Azure interactúen con la instancia de DPS.

Configuración predeterminada

De forma predeterminada, el filtrado de IP está deshabilitado y Acceso a la red pública se establece en Todas las redes. Esta configuración predeterminada significa que DPS acepta conexiones desde cualquier dirección IP o se ajusta a una regla que acepta el intervalo de direcciones IP 0.0.0.0/0.

IoT DPS default IP filter settings.

Adición de una regla de filtro IP

Para agregar una regla de filtro IP:

  1. Vaya a Azure Portal.

  2. En el menú de la izquierda o en la página del portal, seleccione Todos los recursos.

  3. Seleccione la instancia de Device Provisioning Service.

  4. En el menú Configuración de la izquierda, seleccione Redes.

  5. En Acceso a la red pública, seleccione Selected IP ranges (Intervalos IP seleccionados).

  6. Seleccione + Agregar regla de filtro IP.

    Add an IP filter rule to an IoT DPS.

  7. Rellene los campos a continuación:

    Campo Descripción
    Nombre Cadena única de hasta 128 caracteres alfanuméricos que no distingue mayúsculas de minúsculas. Solo se aceptan los caracteres alfanuméricos de 7 bits ASCII más {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
    Intervalo de direcciones Una única dirección IPv4 o un bloque de direcciones IP en la notación CIDR. Por ejemplo, en notación CIDR, 192.168.100.0/22 representa las direcciones IPv4 de 1024 de 192.168.100.0 a 192.168.103.255.
    Acción Seleccione Permitir o Bloquear.

    After selecting Add an IP Filter rule.

  8. Seleccione Guardar. Debería ver una alerta que le informa de que la actualización está en curso.

    Notification about saving an IP filter rule.

    Nota:

    La opción + Agregar regla de filtro IP se deshabilita cuando se alcanza el máximo de 100 reglas de filtro IP.

Edición de una regla de filtro IP

Para editar una regla existente:

  1. Seleccione los datos de la regla de filtro IP que desea cambiar.

    Edit an IP filter rule.

  2. Realice el cambio.

  3. Seleccione Guardar.

Eliminación de una regla de filtro IP

Para eliminar una regla de filtro IP:

  1. Seleccione el icono de eliminación en la fila de la regla de IP que desea eliminar.

    Delete an IoT DPS IP filter rule.

  2. Seleccione Guardar.

Evaluación de las reglas de filtro IP

Las reglas de filtro IP se aplican por orden. La primera regla que coincide con la dirección IP determina la acción de aceptación o rechazo.

Por ejemplo, si desea aceptar las direcciones del intervalo 192.168.100.0/22 y rechazar todas las demás, la primera regla de la cuadrícula debe aceptar el intervalo de direcciones 192.168.100.0/22. La siguiente regla debe rechazar todas las direcciones mediante el intervalo 0.0.0.0/0.

Para cambiar el orden de las reglas de filtro IP:

  1. Seleccione la regla que desea mover.

  2. Arrastre y coloque la regla en la ubicación deseada.

  3. Seleccione Guardar.

Actualización de reglas de filtro IP mediante plantillas de Azure Resource Manager

Hay dos maneras de actualizar el filtro IP de DPS:

  1. Llamar al método de la API REST de recursos de IoT Hub. Para obtener información sobre cómo actualizar las reglas de filtro IP mediante REST, consulte IpFilterRule en la sección de definiciones de Método de actualización de recursos de IoT Hub.

  2. Usar las plantillas de Azure Resource Manager. Para obtener instrucciones sobre su uso, consulte la información sobre plantillas de Azure Resource Manager. Los ejemplos siguientes muestran cómo crear, editar y eliminar reglas de filtro IP de DPS con plantillas de Azure Resource Manager.

    Nota:

    Actualmente, la CLI de Azure y Azure PowerShell no admiten actualizaciones de reglas de filtro IP de DPS.

Adición de una regla de filtro IP

En el ejemplo de plantilla siguiente se crea una nueva regla de filtro IP denominada "AllowAll" que acepta todo el tráfico.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": {
        "iotDpsName": {
            "type": "string",
            "defaultValue": "[resourceGroup().name]",
            "minLength": 3,
            "metadata": {
                "description": "Specifies the name of the IoT DPS service."
            }
        }, 
        "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
                "description": "Location for Iot DPS resource."
            }
        }        
    }, 
    "variables": {
        "iotDpsApiVersion": "2020-01-01"
    }, 
    "resources": [
        {
            "type": "Microsoft.Devices/provisioningServices",
            "apiVersion": "[variables('iotDpsApiVersion')]",
            "name": "[parameters('iotDpsName')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "S1",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "IpFilterRules": [
                    {
                        "FilterName": "AllowAll",
                        "Action": "Accept",
                        "ipMask": "0.0.0.0/0"
                    }
                ]
            }            
        }
    ]
}

Actualice los atributos de la regla de filtro IP de la plantilla en función de sus requisitos.

Atributo Descripción
FilterName Escriba un nombre para la regla de filtro IP. Debe ser una cadena única de hasta 128 caracteres alfanuméricos que no distinga mayúsculas de minúsculas. Solo se aceptan los caracteres alfanuméricos de 7 bits ASCII más {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
Acción Los valores aceptados son Aceptar o Rechazar como la acción de la regla de filtro IP.
ipMask Proporcione una única dirección IPv4 o un bloque de direcciones IP en la notación CIDR. Por ejemplo, en notación CIDR, 192.168.100.0/22 representa las direcciones IPv4 de 1024 de 192.168.100.0 a 192.168.103.255.

Actualización de una regla de filtro IP

En el ejemplo de plantilla siguiente se actualiza la regla de filtro IP denominada "AllowAll", que se mostró anteriormente, para rechazar todo el tráfico.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
                "IpFilterRules": [ 
                    { 
                        "FilterName": "AllowAll", 
                        "Action": "Reject", 
                        "ipMask": "0.0.0.0/0" 
                    } 
                ] 
            }             
        } 
    ] 
}

Eliminación de una regla de filtro IP

En el ejemplo de plantilla siguiente se eliminan todas las reglas de filtro IP para la instancia de DPS.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
            }             
        } 
    ] 
}

Pasos siguientes

Para explorar aún más la administración de DPS, consulte: