Permitir el acceso al espacio de nombres de Event Hubs desde redes virtuales específicas

La integración de Event Hubs con los puntos de conexión de servicio de red virtual (VNet) permite el acceso seguro a las funcionalidades de mensajería desde cargas de trabajo tales como máquinas virtuales que están enlazadas a redes virtuales, con una ruta de acceso del tráfico de red que está protegida en ambos extremos.

Una vez realizada la configuración para enlazarse con al menos un punto de conexión de servicio de subred de red virtual, el espacio de nombres respectivo de Event Hubs ya solo aceptará el tráfico procedente de redes virtuales autorizadas. Desde la perspectiva de la red virtual, el enlace de un espacio de nombres de Event Hubs a un punto de conexión de servicio configura un túnel de redes aislado desde la subred de la red virtual al servicio de mensajería.

El resultado es una relación privada y aislada entre las cargas de trabajo enlazadas a la subred y el espacio de nombres respectivo de Event Hubs, a pesar de que la dirección de red que se puede observar en el punto de conexión de servicio de mensajería esté en un intervalo IP público. Hay una excepción a este comportamiento. Al habilitar un punto de conexión de servicio, de forma predeterminada, se habilita la regla denyall en el firewall de IP asociado a la red virtual. Puede agregar direcciones IP específicas en el firewall de IP para habilitar el acceso al punto de conexión público de Event Hubs.

Observaciones importantes

  • Esta característica no se admite en el nivel Básico.
  • La activación de las redes virtuales en el espacio de nombres de Event Hubs bloquea las solicitudes entrantes de manera predeterminada, a menos que las solicitudes se originen en un servicio que funciona desde redes virtuales permitidas. Las solicitudes que bloquean incluyen aquellas 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 los recursos de Event Hubs desde determinados servicios de confianza, incluso cuando las redes virtuales están habilitadas. Para ver una lista de servicios de confianza, consulte Servicios de confianza.
  • 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. 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).

Escenarios de seguridad avanzados que habilita la integración de VNet

En el caso de soluciones que requieren una estricta seguridad compartimentalizada y en las que las subredes de redes virtuales proporcionan la segmentación entre los servicios compartimentalizados, estas siguen necesitando rutas de comunicación entre los servicios que residen en esos compartimentos.

Cualquier ruta IP inmediata entre compartimientos, incluidos aquellos que transportan HTTPS a través de TCP/IP, tienen el riesgo de sufrir ataques por puntos vulnerables en la capa de red o en capas superiores. Los servicios de mensajería proporcionan rutas de comunicación aisladas, donde los mensajes incluso se escriben en discos cuando se trasladan entre entidades. Las cargas de trabajo de dos redes virtuales distintas enlazadas a la misma instancia de Event Hubs pueden comunicarse de forma eficaz y fiable mediante mensajes, al tiempo que se preserva la integridad de los respectivos límites de aislamiento de red.

Esto significa que sus soluciones confidenciales en la nube no solo obtienen acceso a las funcionalidades de mensajería asíncrona de Azure (líderes del sector en fiabilidad y escalabilidad), sino que también pueden usar la mensajería para crear rutas de comunicación entre compartimentos seguros de la solución, que son intrínsecamente más seguros de lo que se puede lograr con cualquier otro modo de comunicación entre iguales, incluyendo en protocolo HTTPS y los protocolos de socket protegidos por TLS.

Enlace de centros de eventos a redes virtuales

Las reglas de red virtual son una característica de firewall que controla si el espacio de nombres de Azure Event Hubs acepta las conexiones de una subred determinada de una red virtual.

Enlazar un espacio de nombres de Event Hubs a una red virtual es un proceso de dos pasos. Primero debe crear un punto de conexión de servicio de red virtual en una subred de red virtual y habilitarlo para Microsoft.EventHub, tal como se explica en el artículo de introducción a los puntos de conexión de servicio. Una vez que haya agregado el punto de conexión de servicio, enlácelo con el espacio de nombres de Event Hubs con una regla de red virtual.

La regla de red virtual es una asociación del espacio de nombres de Event Hubs con una subred de red virtual. Mientras exista la regla, se les concederá acceso a todas las cargas de trabajo que estén enlazadas a la subred, al espacio de nombres de Event Hubs. Event Hubs no establece nunca por sí mismo conexiones de salida, no necesita obtener acceso y, por tanto, nunca se le concede acceso a la subred habilitando esta regla.

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 de Service Bus. 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 especificar las redes desde las que se permite el acceso.

Configurar redes seleccionadas para un espacio de nombres existente

En esta sección se muestra cómo usar Azure Portal para agregar un punto de conexión de servicio de red virtual. Para limitar el acceso, debe integrar el punto de conexión de servicio de red virtual para este 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, puede establecer una de las tres opciones siguientes. Elija la opción Redes seleccionadas para permitir el acceso solo desde redes virtuales específicas.

    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 redes específicas, elija la opción Redes seleccionadas en la parte superior de la página si aún no está seleccionada.

  5. En la sección Redes virtuales de la página, seleccione + Add existing virtual network* (Agregar red virtual existente). Seleccione + Crear una red virtual nueva si quiere crear una nueva red virtual.

    Selection of Add existing virtual network menu item.

    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.

  6. En la lista de redes virtuales, seleccione la red virtual y después elija la subred. Debe habilitar el punto de conexión de servicio antes de agregar la red virtual a la lista. Si no está habilitado el punto de conexión de servicio, el portal le pide que lo habilite.

    Image showing the selection of a subnet.

  7. Debería ver el siguiente mensaje correcto después de habilitar el punto de conexión de servicio para la subred para Microsoft.EventHub. Seleccione Agregar en la parte inferior de la página para agregar la red.

    Image showing the selection of a subnet and enabling an endpoint.

    Nota:

    Si no puede habilitar el punto de conexión de servicio, puede ignorar el punto de conexión de servicio de red virtual que falta mediante la plantilla de Resource Manager. Esta funcionalidad no está disponible en Azure Portal.

  8. 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.

  9. 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.

    Image showing the saving of virtual network.

    Nota:

    Para restringir el acceso a intervalos o direcciones concretos, consulte Permitir el acceso desde intervalos o direcciones IP específicos.

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

La siguiente plantilla de Resource Manager de ejemplo agrega una regla de red virtual a un espacio de nombres de Event Hubs. Para la regla de red, especifica el identificador de una subred en una red virtual.

El identificador es una ruta de acceso de Resource Manager completa para la subred de la red virtual. Por ejemplo, /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/default para la subred predeterminada de una red virtual.

Al agregar reglas de red virtual o de firewalls, establezca el valor de defaultAction en Deny.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "eventhubNamespaceName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Event Hubs namespace"
        }
      },
      "virtualNetworkName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Virtual Network Rule"
        }
      },
      "subnetName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Virtual Network Sub Net"
        }
      },
      "location": {
        "type": "string",
        "metadata": {
          "description": "Location for Namespace"
        }
      }
    },
    "variables": {
      "namespaceNetworkRuleSetName": "[concat(parameters('eventhubNamespaceName'), concat('/', 'default'))]",
      "subNetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets/', parameters('virtualNetworkName'), parameters('subnetName'))]"
    },
    "resources": [
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[parameters('eventhubNamespaceName')]",
        "type": "Microsoft.EventHub/namespaces",
        "location": "[parameters('location')]",
        "sku": {
          "name": "Standard",
          "tier": "Standard"
        },
        "properties": { }
      },
      {
        "apiVersion": "2017-09-01",
        "name": "[parameters('virtualNetworkName')]",
        "location": "[parameters('location')]",
        "type": "Microsoft.Network/virtualNetworks",
        "properties": {
          "addressSpace": {
            "addressPrefixes": [
              "10.0.0.0/23"
            ]
          },
          "subnets": [
            {
              "name": "[parameters('subnetName')]",
              "properties": {
                "addressPrefix": "10.0.0.0/23",
                "serviceEndpoints": [
                  {
                    "service": "Microsoft.EventHub"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[variables('namespaceNetworkRuleSetName')]",
        "type": "Microsoft.EventHub/namespaces/networkruleset",
        "dependsOn": [
          "[concat('Microsoft.EventHub/namespaces/', parameters('eventhubNamespaceName'))]"
        ],
        "properties": {
          "publicNetworkAccess": "Enabled",
          "defaultAction": "Deny",
          "virtualNetworkRules": 
          [
            {
              "subnet": {
                "id": "[variables('subNetId')]"
              },
              "ignoreMissingVnetServiceEndpoint": false
            }
          ],
          "ipRules":[],
          "trustedServiceAccessEnabled": false
        }
      }
    ],
    "outputs": { }
  }

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 los comandos az eventhubs namespace network-rule-set añadir, enumerar, actualizar y eliminar para administrar reglas de red virtual para un espacio de nombres de Service Bus.

Uso de Azure PowerShell

Use los siguientes comandos Azure PowerShell para agregar, enumerar, quitar, actualizar y eliminar reglas de red para un espacio de nombres de Service Bus.

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 (VNet). Es decir, si no tenía ningún filtro IP ni ninguna regla 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 los filtros IP y las reglas de red virtual. Si la acción predeterminada se establece en Allow, no se aplican los filtros IP ni las 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 previamente configuró el espacio de nombres mediante 2021-01-01-preview y versiones anteriores con defaultAction establecido en Deny, y no especificó ningún filtro IP ni ninguna regla de red virtual, el portal debería haber activado la opción 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 obtener más información acerca de las redes virtuales, consulte los siguientes vínculos: