Permitir el acceso a los espacios de nombres de Azure Event Hubs desde intervalos o direcciones IP específicas

De forma predeterminada, los espacios de nombres de Azure Event Hubs son accesibles desde Internet, siempre que la solicitud venga con una autenticación y una autorización válidas. Con el firewall de IP, puede restringirlo aún más a solo un conjunto de direcciones o intervalos de direcciones IPv4 y IPv6 en notación CIDR (Enrutamiento de interdominios sin clases).

Esta característica es útil en escenarios en los que Azure Event Hubs debe ser accesible únicamente desde ciertos sitios conocidos. Las reglas de firewall permiten configurar reglas para aceptar el tráfico procedente de direcciones IPv4 y IPv6 concretas. Por ejemplo, si usa Event Hubs con Azure ExpressRoute, puede crear una regla de firewall para permitir el tráfico procedente única y exclusivamente de las direcciones IP de la infraestructura local.

Reglas de firewall de IP

Se especifican reglas de firewall de IP en el nivel del espacio de nombres de Event Hubs. Por lo tanto, las reglas se aplican a todas las conexiones de clientes que usan cualquier protocolo admitido. Cualquier intento de conexión desde una dirección IP que no coincida con una regla IP admitida en el espacio de nombres de Event Hubs se rechaza como no autorizado. La respuesta no menciona la regla IP. Las reglas de filtro IP se aplican en orden y la primera regla que coincida con la dirección IP determina la acción de aceptar o rechazar.

Observaciones importantes

  • Esta característica no se admite en el nivel Básico.
  • La activación de las reglas de firewall en el espacio de nombres de Event Hubs bloquea las solicitudes entrantes de forma predeterminada, a menos que las solicitudes se originen en un servicio que funciona desde direcciones IP públicas permitidas. Entre las solicitudes que son bloqueadas se incluyen las solicitudes de otros servicios de Azure, desde Azure Portal, desde los servicios de registro y de métricas, etc. Como excepción, puede permitir el acceso a recursos de Event Hubs desde determinados servicios de confianza, aunque esté habilitado el filtrado de IP. Para obtener una lista de servicios de confianza, consulte Servicios de confianza de Microsoft.
  • Especifique al menos una regla de firewall de IP o una regla de red virtual para que el espacio de nombres permita el tráfico solo desde las direcciones IP especificadas o la subred de una red virtual. Si no hay ninguna regla de red virtual y de IP, se puede acceder al espacio de nombres a través de la red pública de Internet (mediante la clave de acceso).

Usar Azure Portal

Al crear un espacio de nombres, solo puede permitir el acceso público (desde todas las redes) o privado (solo a través de puntos de conexión privados) al espacio de nombres. Una vez creado el espacio de nombres, puede permitir el acceso desde direcciones IP específicas o desde redes virtuales específicas (mediante puntos de conexión de servicio de red).

Configuración del acceso público al crear un espacio de nombres

Para habilitar el acceso público, seleccione Acceso público en la página Redes del asistente para la creación del espacio de nombres.

Screenshot showing the Networking page of the Create namespace wizard with Public access option selected.

Después de crear el espacio de nombres, seleccione Redes en el menú izquierdo de la página Espacio de nombres. Verá que la opción Todas las redes está seleccionada. Puede seleccionar la opción Redes seleccionadas y permitir el acceso desde direcciones IP específicas o redes virtuales específicas. En la sección siguiente se proporcionan detalles sobre cómo configurar el firewall de IP para especificar las direcciones IP desde las que se permite el acceso.

Configuración del firewall de IP para un espacio de nombres existente

En esta sección se muestra cómo usar Azure Portal para crear reglas de firewall de IP para un espacio de nombres de Event Hubs.

  1. Vaya a su espacio de nombres de Event Hubs en Azure Portal.

  2. Seleccione Redes en Configuración en el menú de la izquierda.

  3. En la página Redes, en Acceso a la red pública, elija la opción Redes seleccionadas para permitir el acceso solo desde direcciones IP especificadas.

    Aquí tiene más detalles sobre las opciones disponibles en la página Acceso a la red pública :

    • Deshabilitado. Esta opción deshabilita cualquier acceso público al espacio de nombres. El espacio de nombres solo es accesible a través de los puntos de conexión privados.

    • Redes seleccionadas. Esta opción permite el acceso público al espacio de nombres mediante una clave de acceso desde redes seleccionadas.

      Importante

      Si elige Redes seleccionadas, agregue al menos una regla de firewall de IP o una red virtual que tendrá acceso al espacio de nombres. Elija Deshabilitado si quiere restringir todo el tráfico a este espacio de nombres solo a través de puntos de conexión privados.

    • Todas las redes (predeterminado). Esta opción permite el acceso público desde todas las redes mediante una clave de acceso. Si selecciona la opción Todas las redes, el centro de eventos aceptará conexiones procedentes de cualquier dirección IP (mediante la tecla de acceso). Esta configuración equivale a una regla que acepta el intervalo de direcciones IP 0.0.0.0/0.

  4. Para restringir el acceso a direcciones IP específicas, seleccione la opción Redes seleccionadas y siga estos pasos:

    1. En la sección Firewall, seleccione Agregar la dirección IP del cliente para dar acceso a esa IP de cliente actual al espacio de nombres.

    2. Para Intervalo de direcciones, escriba direcciones IPv4 o IPv6 específicas, o intervalos de direcciones en notación CIDR.

      Importante

      Cuando el servicio empiece a admitir conexiones IPv6 en el futuro y los clientes cambien automáticamente al uso de IPv6, los clientes se interrumpirán si solo tiene direcciones IPv4, no direcciones IPv6. Por lo tanto, se recomienda agregar direcciones IPv6 a la lista de direcciones IP permitidas ahora para que los clientes no interrumpan cuando el servicio cambie finalmente a admitir IPv6.

    3. Especifique si quiere permitir que los servicios de confianza de Microsoft omitan este firewall. Consulte Servicios de Microsoft de confianza para más información.

      Firewall section highlighted in the Public access tab of the Networking page.

  5. Seleccione Guardar en la barra de herramientas para guardar la configuración. Espere unos minutos hasta que la confirmación se muestre en las notificaciones de Azure Portal.

    Nota

    Para restringir el acceso a redes virtuales específicas, consulte Permitir el acceso desde redes específicas.

Servicios de Microsoft de confianza

Al activar la opción ¿Quiere permitir que los servicios de confianza de Microsoft puedan omitir este firewall?, los siguientes servicios del mismo inquilino obtiene acceso a los recursos de Event Hubs.

Servicio de confianza Escenarios de uso admitidos
Azure Event Grid Permite que Azure Event Grid envíe eventos a Event Hubs en el espacio de nombres de Event Hubs. También debe seguir estos pasos:
  • Habilite la identidad asignada por el sistema para un tema o un dominio
  • Agregue la identidad al rol Remitente de datos de Azure Event Hubs en el espacio de nombres de Event Hubs
  • A continuación, configure la suscripción de eventos que emplea un centro de eventos como punto de conexión para usar la identidad asignada por el sistema.

Para obtener más información, vea Entrega de evento con una identidad administrada

Azure Stream Analytics Permite que un trabajo de Azure Stream Analytics lea datos de centros de eventos del espacio de nombres de Event Hubs (entrada) o escriba datos en ellos (salida).

Importante: El trabajo de Stream Analytics debe estar configurado para usar una identidad administrada para tener acceso al centro de eventos. Para obtener más información, consulte Uso de identidades administradas para acceder al centro de eventos desde un trabajo de Azure Stream Analytics (versión preliminar).

Azure IoT Hub Permite que IoT Hub envíe mensajes a centros de eventos del espacio de nombres de Event Hubs. También debe seguir estos pasos:
  • Habilitación de la identidad asignada por el sistema para el centro de IoT
  • Agregue la identidad al rol Remitente de datos de Azure Event Hubs en el espacio de nombres de Event Hubs.
  • A continuación, configure la instancia de IoT Hub que usa un centro de eventos como punto de conexión personalizado para utilizar la autenticación basada en identidad.
Azure API Management

El servicio API Management le permite enviar eventos a un centro de eventos en el espacio de nombres de Event Hubs.

Azure Monitor (configuración de diagnóstico y grupos de acciones) Permite que Azure Monitor envíe información de diagnóstico y notificaciones de alertas a Event Hubs en el espacio de nombres de Event Hubs. Azure Monitor puede leer desde el centro de eventos y escribir datos en el centro de eventos.
Azure Synapse Permite a Azure Synapse conectarse al centro de eventos utilizando la identidad administrada de área de trabajo de Synapse. Añada el rol de remitente, receptor o propietario de datos de Azure Event Hubs a la identidad en el espacio de nombres de Event Hubs.
Explorador de datos de Azure Permite a Azure Data Explorer recibir eventos del centro de eventos mediante la identidad administrada del clúster. Debe seguir estos pasos:
  • Configuración de la identidad administrada en Azure Data Explorer
  • Concesión del rol Receptor de datos de Azure Event Hubs a la identidad, en el centro de eventos.
 
Azure IoT Central

Permite que IoT Central exporte datos a centros de eventos del espacio de nombres de Event Hubs. También debe seguir estos pasos:

  • Habilitación de la identidad asignada por el sistema para la aplicación IoT Central.
  • Agregue la identidad al rol Remitente de datos de Azure Event Hubs en el espacio de nombres de Event Hubs.
  • A continuación, configure el destino de exportación de Event Hubs en la aplicación IoT Central para usar la autenticación basada en identidades.
Azure Health Data Services Permite que el conector de IoT de las API de atención médica ingiera datos de dispositivos médicos de el espacio de nombres de Event Hubs y conserve los datos en el servicio de Recursos Rápidos de Interoperabilidad en Salud (FHIR®) configurado. El conector de IoT debe configurarse para usar una identidad administrada para acceder al centro de eventos. Para obtener más información, consulta Introducción al conector de IoT: API de Azure Healthcare.
Azure Digital Twins Permite a Azure Digital Twins enviar datos a los centros de eventos de su espacio de nombres de Event Hubs. También debe seguir estos pasos:

  • Habilite la identidad asignada por el sistema para la instancia de Azure Digital Twins.
  • Agregue la identidad al rol Remitente de datos de Azure Event Hubs en el espacio de nombres de Event Hubs.
  • Después, configure un punto de conexión de Azure Digital Twins o una conexión del historial de datos de Azure Digital Twins que use la identidad asignada por el sistema para autenticarse. Para más información sobre cómo configurar puntos de conexión y rutas de eventos a recursos de Event Hubs desde Azure Digital Twins, consulte Enrutamiento de eventos de Azure Digital Twins y Creación de puntos de conexión en Azure Digital Twins.

Los demás servicios de confianza para Azure Event Hubs se pueden encontrar a continuación:

  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

Uso de plantillas de Resource Manager

Importante

La característica de firewall no se admite en el nivel Básico.

La siguiente plantilla de Resource Manager permite agregar una regla de filtro de IP a un espacio de nombres de Event Hubs.

ipMask en la plantilla es una única dirección IPv4 o un bloque de direcciones IP en la notación CIDR. Por ejemplo, en notación CIDR 70.37.104.0/24 representa las 256 direcciones IPv4 de 70.37.104.0 a 70.37.104.255, donde 24 indica el número de bits de prefijo significativos para el intervalo.

Nota

El valor predeterminado de defaultAction es Allow. Al agregar reglas de firewalls o de red virtual, asegúrese de establecer el valor de defaultAction en Deny.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespace_name": {
            "defaultValue": "contosoehub1333",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2022-01-01-preview",
            "name": "[parameters('namespace_name')]",
            "location": "East US",
            "sku": {
                "name": "Standard",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled",
                "disableLocalAuth": false,
                "zoneRedundant": true,
                "isAutoInflateEnabled": false,
                "maximumThroughputUnits": 0,
                "kafkaEnabled": true
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/authorizationrules",
            "apiVersion": "2022-01-01-preview",
            "name": "[concat(parameters('namespace_name'), '/RootManageSharedAccessKey')]",
            "location": "eastus",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespace_name'))]"
            ],
            "properties": {
                "rights": [
                    "Listen",
                    "Manage",
                    "Send"
                ]
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/networkRuleSets",
            "apiVersion": "2022-01-01-preview",
            "name": "[concat(parameters('namespace_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespace_name'))]"
            ],
            "properties": {
                "publicNetworkAccess": "Enabled",
                "defaultAction": "Deny",
                "virtualNetworkRules": [],
                "ipRules": [
                    {
                        "ipMask": "10.1.1.1",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "11.0.0.0/24",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "172.72.157.204",
                        "action": "Allow"
                    }
                ]
            }
        }
    ]
}

Para implementar la plantilla, siga las instrucciones para Azure Resource Manager.

Importante

Si no hay ninguna regla de red virtual y de IP, todo el tráfico fluye al espacio de nombres, aunque establezca defaultAction en deny. Se puede acceder al espacio de nombres a través de la red pública de Internet (mediante la clave de acceso). Especifique al menos una regla de IP o una regla de red virtual para que el espacio de nombres permita el tráfico solo desde las direcciones IP o la subred especificadas de una red virtual.

Uso de CLI de Azure

Use az eventhubs namespace network-rule-set los comandos add, list, update y remove para administrar reglas de firewall de IP para un espacio de nombres de Event Hubs.

Uso de Azure PowerShell

Use el cmdlet Set-AzEventHubNetworkRuleSet para agregar una o varias reglas de firewall de IP. Un ejemplo del artículo:

$ipRule1 = New-AzEventHubIPRuleConfig -IPMask 2.2.2.2 -Action Allow
$ipRule2 = New-AzEventHubIPRuleConfig -IPMask 3.3.3.3 -Action Allow
$virtualNetworkRule1 = New-AzEventHubVirtualNetworkRuleConfig -SubnetId '/subscriptions/subscriptionId/resourcegroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/default'
$networkRuleSet = Get-AzEventHubNetworkRuleSet -ResourceGroupName myResourceGroup -NamespaceName myNamespace
$networkRuleSet.IPRule += $ipRule1
$networkRuleSet.IPRule += $ipRule2
$networkRuleSet.VirtualNetworkRule += $virtualNetworkRule1
Set-AzEventHubNetworkRuleSet -ResourceGroupName myResourceGroup -NamespaceName myNamespace -IPRule $ipRule1,$ipRule2 -VirtualNetworkRule $virtualNetworkRule1,$virtualNetworkRule2,$virtualNetworkRule3

Acción predeterminada y acceso a la red pública

API DE REST

El valor predeterminado de la propiedad defaultAction era Deny para la versión de API 2021-01-01-preview y versiones anteriores. Sin embargo, la regla de negación no se aplica, a menos que establezca filtros IP y reglas de red virtual. Es decir, si no tiene ningún filtro IP o reglas de red virtual, se trata como Allow.

Desde la versión 2021-06-01-preview en adelante de la API, el valor predeterminado de la propiedad defaultAction es Allow, a fin de reflejar con precisión el cumplimiento por parte del servicio. Si la acción predeterminada se establece en Deny, se aplican filtros IP y reglas de red virtual. Si la acción predeterminada se establece en Allow, no se aplican filtros IP ni reglas de red virtual. El servicio recuerda las reglas cuando las desactiva y vuelve a activarlas.

En la versión de API 2021-06-01-preview y versiones posteriores también se presenta una propiedad nueva denominada publicNetworkAccess. Si se establece en Disabled, se restringen las operaciones solo a vínculos privados. Si se establece en Enabled, se permiten las operaciones a través de la red pública de Internet.

Para más información sobre estas propiedades, consulte los artículos sobre la creación o actualización de un conjunto de reglas de red y la creación o actualización de conexiones de punto de conexión privado.

Nota:

Ninguna de las opciones anteriores omite la validación de notificaciones a través de la autenticación de Microsoft Entra o SAS. La comprobación de autenticación siempre se ejecuta una vez que el servicio valida las comprobaciones de red configuradas según los parámetros defaultAction, publicNetworkAccess, privateEndpointConnections.

Azure Portal

Azure Portal siempre usa la versión más reciente de la API para obtener y establecer propiedades. Si ha configurado el espacio de nombres con 2021-01-01-preview y versiones anteriores con defaultAction establecido en Denyy ha especificado cero filtros IP y reglas de red virtual, el portal habría comprobado previamente Redes seleccionadas en la página redes del espacio de nombres. Ahora, marca la opción Todas las redes.

Screenshot that shows the Public access page with the All networks option selected.

Pasos siguientes

Para restringir el acceso a Event Hubs a las redes virtuales de Azure, visite el siguiente vínculo: