Permitir el acceso al espacio de nombres de Azure Service Bus desde intervalos o direcciones IP específicas

De forma predeterminada, los espacios de nombres de Service Bus 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 restringir el tráfico entrante a solo un conjunto de direcciones o intervalos de direcciones IPv4 en notación CIDR (Enrutamiento de interdominios sin clases).

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

Reglas de firewall de IP

Las reglas de firewall de IP se aplican en el nivel de espacio de nombres de Service Bus. Por lo tanto, las reglas se aplican a todas las conexiones de clientes que usan cualquier protocolo admitido (AMQP [5671] y HTTPS [443]). Cualquier intento de conexión desde una dirección IP que no coincida con una regla IP admitida en el espacio de nombres de Service Bus 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

  • Solo se admiten redes virtuales en el nivel premium de Service Bus. Si la actualización al nivel Premium no es una opción, es posible usar reglas de firewall de IP. Se recomienda que proteja el token de firma de acceso compartido (SAS) y que lo comparta solo con usuarios autorizados. Para más información sobre la autenticación de SAS, consulte Autenticación y autorización.

  • 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).

  • La implementación de reglas de firewall puede evitar que otros servicios de Azure interactúen con Service Bus. Como excepción, puede permitir el acceso a los recursos de Service Bus desde determinados servicios de confianza, aunque esté habilitado el filtrado de IP. Para ver una lista de servicios de confianza, consulte Servicios de confianza.

    Los siguientes servicios de Microsoft deben estar en una red virtual

    • Azure App Service
    • Azure Functions

Nota

Puede ver la pestaña Redes solo para los espacios de nombres premium. Para establecer reglas de firewall IP para los demás niveles, use las plantillas de Azure Resource Manager, CLI de Azure, PowerShell o API de REST.

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 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 Service Bus.

  1. Vaya al espacio de nombres de Service Bus en Azure Portal.

  2. En el menú de la izquierda, seleccione la opción Redes en Configuración.

    Nota

    Puede ver la pestaña Redes solo para los espacios de nombres premium.

  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 direcciones IP especificadas.

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

      Screenshot that shows the Networking page of a namespace with public access disabled.

      Elija si quiere permitir que los servicios de confianza de Microsoft omitan el firewall. Para obtener la lista de servicios de Microsoft de confianza para Azure Service Bus, consulte la sección Servicios de Microsoft de confianza.

    • 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, Service Bus acepta 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 permitir el acceso solo desde una dirección IP especificada, seleccione la opción Redes seleccionadas si aún no lo está. En la sección Firewall, haga lo siguiente:

    1. Seleccione la opción Agregar la dirección IP del cliente para dar acceso a esa IP de cliente actual al espacio de nombres.

    2. En Intervalo de direcciones, escriba una dirección IPv4 específica o un intervalo de direcciones IPv4 en notación CIDR.

    3. Especifique si quiere permitir que los servicios de confianza de Microsoft omitan este firewall. Para obtener la lista de servicios de Microsoft de confianza para Azure Service Bus, consulte la sección Servicios de Microsoft de confianza.

      Advertencia

      Si selecciona la opción Redes seleccionadas y no agrega al menos una regla de firewall de IP o una red virtual en esta página, se podrá acceder al espacio de nombres desde la red pública de Internet (mediante la clave de acceso).

      Screenshot of the Azure portal Networking page. The option to allow access from Selected networks is selected and the Firewall section is highlighted.

  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 adquieren acceso a los recursos de Service Bus.

Servicio de confianza Escenarios de uso admitidos
Azure Event Grid Permite a Azure Event Grid enviar eventos a colas o temas en el espacio de nombres de Service Bus. 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 Service Bus en el espacio de nombres de Service Bus
  • A continuación, configure la suscripción de eventos que emplea una cola o tema de Service Bus 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 produzca datos en colas de Service Bus en temas.

Importante: El trabajo de Stream Analytics debe estar configurado para usar una identidad administrada y tener acceso al espacio de nombres de Service Bus. Agregue la identidad al rol Remitente de datos de Azure Service Bus en el espacio de nombres de Service Bus.

Azure IoT Hub Permite que un centro de IoT envíe mensajes a colas o temas en el espacio de nombres de Service Bus. También debe seguir estos pasos:
Azure API Management

El servicio API Management le permite enviar mensajes a una cola o un tema de Service Bus en el espacio de nombres de Service Bus.

Azure IoT Central

Permite a IoT Central exportar datos a colas o temas de Service Bus en el espacio de nombres de Service Bus. 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 Service Bus en el espacio de nombres de Service Bus.
  • A continuación, configure el destino de exportación de Service Bus en la aplicación IoT Central para usar la autenticación basada en identidades.
Azure Digital Twins Permite que Azure Digital Twins envíe datos a los temas de Service Bus en el espacio de nombres de Service Bus. 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 Service Bus en el espacio de nombres de Service Bus.
  • 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 Service Bus desde Azure Digital Twins, consulte Enrutamiento de eventos de Azure Digital Twins y Creación de puntos de conexión en Azure Digital Twins.
Azure Monitor (configuración de diagnóstico y grupos de acciones) Permite a Azure Monitor enviar información de diagnóstico y notificaciones de alertas a Service Bus en el espacio de nombres de Service Bus. Azure Monitor puede leer y escribir datos en el espacio de nombres de Service Bus.
Azure Synapse Permite a Azure Synapse conectarse a Service Bus utilizando la identidad administrada del área de trabajo de Synapse. Agregue los roles de Remitente, Receptor o Propietario de datos de Azure Service Bus a la identidad en el espacio de nombres de Service Bus.

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

  • Explorador de datos de Azure
  • Azure Health Data Services
  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

Uso de plantillas de Resource Manager

En esta sección se incluye una plantilla de Azure Resource Manager de ejemplo que agrega una red virtual y una regla de firewall a un espacio de nombres de Service Bus existente.

ipMask 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": "mypremiumnamespace",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.ServiceBus/namespaces",
            "apiVersion": "2022-10-01-preview",
            "name": "[parameters('namespace_name')]",
            "location": "East US",
            "sku": {
                "name": "Premium",
                "tier": "Premium",
                "capacity": 1
            },
            "properties": {
                "premiumMessagingPartitions": 1,
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled",
                "disableLocalAuth": false,
                "zoneRedundant": true
            }
        },
        {
            "type": "Microsoft.ServiceBus/namespaces/networkRuleSets",
            "apiVersion": "2022-10-01-preview",
            "name": "[concat(parameters('namespace_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.ServiceBus/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"
                    }
                ]
            }
        }
    ]
}

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 servicebus namespace network-rule-set los comandos add, list, update y remove para administrar reglas de firewall de IP para un espacio de nombres de Service Bus.

Uso de Azure PowerShell

Use los siguientes comandos de Azure PowerShell para agregar, enumerar, quitar, actualizar y eliminar reglas de firewall de IP.

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 of the Azure portal Networking page. The option to allow access from All networks is selected on the Firewalls and virtual networks tab.

Pasos siguientes

Para restringir el acceso a Service Bus a redes virtuales de Azure, visite el siguiente vínculo: