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.
Adición de una regla de filtro IP
Para agregar una regla de filtro IP:
Vaya a Azure Portal.
En el menú de la izquierda o en la página del portal, seleccione Todos los recursos.
Seleccione la instancia de Device Provisioning Service.
En el menú Configuración de la izquierda, seleccione Redes.
En Acceso a la red pública, seleccione Selected IP ranges (Intervalos IP seleccionados).
Seleccione + Agregar regla de filtro IP.
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. Seleccione Guardar. Debería ver una alerta que le informa de que la actualización está en curso.
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:
Seleccione los datos de la regla de filtro IP que desea cambiar.
Realice el cambio.
Seleccione Guardar.
Eliminación de una regla de filtro IP
Para eliminar una regla de filtro IP:
Seleccione el icono de eliminación en la fila de la regla de IP que desea eliminar.
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:
Seleccione la regla que desea mover.
Arrastre y coloque la regla en la ubicación deseada.
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:
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.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: