Permiso para acceder a los espacios de nombres de Azure Event Hubs a través de puntos de conexión privados

Azure Private Link le permite acceder a los servicios de Azure (por ejemplo, Azure Event Hubs, Azure Storage y Azure Cosmos DB) y a los servicios de asociados o clientes hospedados de Azure mediante un punto de conexión privado de la red virtual.

Un punto de conexión privado es una interfaz de red que le conecta de forma privada y segura a un servicio con la tecnología de Azure Private Link. El punto de conexión privado usa una dirección IP privada de la red virtual para incorporar el servicio de manera eficaz a su red virtual. Todo el tráfico dirigido al servicio se enruta mediante el punto de conexión privado, por lo que no se necesita ninguna puerta de enlace, dispositivos NAT, conexiones de ExpressRoute o VPN ni direcciones IP públicas. El tráfico entre la red virtual y el servicio atraviesa la red troncal de Microsoft, eliminando la exposición a la red pública de Internet. Puede conectarse a una instancia de un recurso de Azure, lo que le otorga el nivel más alto de granularidad en el control de acceso.

Para más información, consulte ¿Qué es Azure Private Link?

Observaciones importantes

  • Esta característica no se admite en el nivel Básico.
  • La habilitación de los puntos de conexión privados puede evitar que otros servicios de Azure interactúen con Event Hubs. 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 los puntos de conexión privados no están habilitados. 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).

Incorporación de un punto de conexión privado mediante Azure Portal

Requisitos previos

Para integrar un espacio de nombres de Event Hubs con Azure Private Link, necesitará las siguientes entidades o permisos:

  • Un espacio de nombres de Event Hubs.
  • Una red virtual de Azure.
  • Una subred en la red virtual. Puede usar la subred predeterminada.
  • Permisos de propietario o colaborador para el espacio de nombres y la red virtual.

El punto de conexión privado y la red virtual deben estar en la misma región. Al seleccionar una región para el punto de conexión privado mediante el portal, se filtran automáticamente las redes virtuales que se encuentran en dicha región. El espacio de nombres puede estar en una región diferente.

El punto de conexión privado usa una dirección IP privada en la red virtual.

Configuración del acceso privado al crear un espacio de nombres

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.

Si selecciona la opción Acceso privado en la página Redes del Asistente para la creación de espacios de nombres, puede agregar un punto de conexión privado en la página seleccionando el botón + Punto de conexión privado. Consulte la sección siguiente para ver los pasos detallados para agregar un punto de conexión privado.

Captura de pantalla que muestra la página Redes del asistente Crear espacio de nombres con la opción Acceso privado seleccionada.

Configuración del acceso privado para un espacio de nombres existente

Si ya tiene un espacio de nombres de Event Hubs, puede crear una conexión de vínculo privado siguiendo estos pasos:

  1. Inicie sesión en Azure Portal.

  2. En la barra de búsqueda, escriba Event Hubs.

  3. En la lista, seleccione el espacio de nombres al que desea agregar un punto de conexión privado.

  4. En la página Redes, en Acceso a la red pública, seleccione Deshabilitado si desea que solo se acceda al espacio de nombres a través de puntos de conexión privados.

  5. En Permitir que los servicios de Microsoft de confianza omitan este firewall, seleccione si desea permitir que los servicios de Microsoft de confianza omitan este firewall.

    Captura de pantalla de la página Redes con el acceso a una red pública marcado como Deshabilitado.

  6. Cambie a la pestaña Conexiones de punto de conexión privado.

  7. Seleccione el botón + Punto de conexión privado en la parte superior de la página.

    Página Redes - Pestaña Conexiones de puntos de conexión privadas - Vínculo Agregar punto de conexión privado.

  8. En la página Conceptos básicos, siga estos pasos:

    1. Seleccione la suscripción de Azure donde desea crear el punto de conexión privado.

    2. Seleccione el grupo de recursos para el recurso de punto de conexión privado.

    3. Escriba el Nombre del punto de conexión privado.

    4. Escriba un nombre para la interfaz de red.

    5. Seleccione la región del punto de conexión privado. El punto de conexión privado debe estar en la misma región que la red virtual, que puede estar en una región diferente al recurso del enlace privado al que se está conectando.

    6. Seleccione el botón Siguiente: Recurso > en la parte inferior de la página.

      En esta captura de pantalla se muestra la página Conceptos básicos del asistente Crear un punto de conexión privado.

  9. En la página Recurso, revise la configuración y seleccione Siguiente: Virtual Network.

    En esta captura de pantalla se muestra la página Recurso del asistente Crear un punto de conexión privado.

  10. En la página Virtual Network, seleccione la subred de una red virtual en la que desee implementar el punto de conexión privado.

    1. Seleccione una red virtual. En la lista desplegable, solo se muestran las redes virtuales de la suscripción y la ubicación seleccionadas actualmente.

    2. Seleccione una subred de la red virtual que seleccionó.

    3. Tenga en cuenta que la directiva de red para los puntos de conexión privados está deshabilitada. Si quiere habilitarla, seleccione Editar, actualice la configuración y seleccione Guardar.

    4. En Configuración de IP privada, la opción Asignar dirección IP de forma dinámica está seleccionada de manera predeterminada. Si desea asignar una dirección IP estática, seleccione Asignar estáticamente dirección IP*.

    5. En Grupo de seguridad de aplicaciones, seleccione un grupo de seguridad de aplicaciones existente o cree uno que se asociará al punto de conexión privado.

    6. Seleccione el botón Siguiente: DNS> situado en la parte inferior de la página.

      En esta captura de pantalla se muestra la página Virtual Network del asistente Crear un punto de conexión privado.

  11. En la página DNS, seleccione si desea que el punto de conexión privado se integre con una zona DNS privada y, a continuación, seleccione Siguiente: etiquetas.

  12. En la página Etiquetas, cree cualquier etiqueta (nombres y valores) que desee asociar al recurso de punto de conexión privado. Después, en la parte inferior de la página, seleccione el botón Revisar y crear.

  13. En Revisar y crear, revise toda la configuración y seleccione Crear para crear el punto de conexión privado.

    Captura de pantalla que muestra la página Revisar y crear.

  14. Confirme que la conexión de punto de conexión privado que ha creado aparece en la lista de puntos de conexión. Actualice la página y cambie a la pestaña Conexiones de punto de conexión privado. En este ejemplo, el punto de conexión privado se aprueba automáticamente porque se conectó a un recurso de Azure de su directorio y tiene permisos suficientes.

    Recorte de pantalla que muestra la página de Conexiones de punto de conexión privado con el punto de conexión privado recién creado.

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

Para permitir que los servicios de confianza accedan a su espacio de nombres, cambie a la pestaña Acceso público de la página Redes y seleccione para ¿Quiere permitir que los servicios de confianza de Microsoft puedan omitir este firewall?

Incorporación de un punto de conexión privado mediante PowerShell

En el ejemplo siguiente se muestra cómo usar Azure PowerShell para crear una conexión de punto de conexión privado. No crea un clúster dedicado. Siga los pasos de este artículo para crear un clúster de Event Hubs dedicado.

$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VIRTUAL NETWORK LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -Name $vnetName `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# create an event hubs namespace in a dedicated cluster
$namespaceResource = New-AzResource -Location $namespaceLocation `
                                    -ResourceName $namespaceName `
                                    -ResourceGroupName $rgName `
                                    -Sku @{name = "Standard"; capacity = 1} `
                                    -Properties @{clusterArmId = "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/clusters/<EVENT HUBS CLUSTER NAME>"} `
                                    -ResourceType "Microsoft.EventHub/namespaces" -ApiVersion "2018-01-01-preview"

# create private endpoint connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you'll use later
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# create a private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


Configuración de la zona DNS privada

Cree una zona DNS privada para el dominio de Event Hubs y cree un vínculo de asociación con la red virtual:

$zone = New-AzPrivateDnsZone -ResourceGroupName $rgName `
                            -Name "privatelink.servicebus.windows.net" 
 
$link  = New-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $rgName `
                                            -ZoneName "privatelink.servicebus.windows.net" `
                                            -Name "mylink" `
                                            -VirtualNetworkId $virtualNetwork.Id  
 
$networkInterface = Get-AzResource -ResourceId $privateEndpoint.NetworkInterfaces[0].Id -ApiVersion "2019-04-01" 
 
foreach ($ipconfig in $networkInterface.properties.ipConfigurations) { 
    foreach ($fqdn in $ipconfig.properties.privateLinkConnectionProperties.fqdns) { 
        Write-Host "$($ipconfig.properties.privateIPAddress) $($fqdn)"  
        $recordName = $fqdn.split('.',2)[0] 
        $dnsZone = $fqdn.split('.',2)[1] 
        New-AzPrivateDnsRecordSet -Name $recordName -RecordType A -ZoneName "privatelink.servicebus.windows.net"  `
                                -ResourceGroupName $rgName -Ttl 600 `
                                -PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $ipconfig.properties.privateIPAddress)  
    } 
}

Administración de puntos de conexión privados desde Azure Portal

Cuando se crea un punto de conexión privado, se debe aprobar la conexión. Si el recurso para el que va a crear un punto de conexión privado está en el directorio, puede aprobar la solicitud de conexión siempre que tenga permisos suficientes. Si se va a conectar a un recurso de Azure en otro directorio, debe esperar a que el propietario de ese recurso apruebe la solicitud de conexión.

Hay cuatro estados de aprovisionamiento:

Acción del servicio Estado de punto de conexión privado del consumidor del servicio Descripción
None Pending La conexión se crea manualmente y está pendiente de aprobación por parte del propietario del recurso de Private Link.
Aprobación Aprobado La conexión se aprobó de forma automática o manual y está lista para usarse.
Reject Rechazada El propietario del recurso de vínculo privado rechazó la conexión.
Remove Escenario desconectado El propietario del recurso de vínculo privado quitó la conexión. El punto de conexión privado se vuelve informativo y debe eliminarse para la limpieza.

Aprobación, rechazo o eliminación de una conexión de punto de conexión privado

  1. Inicie sesión en Azure Portal.
  2. En la barra de búsqueda, escriba Event Hubs.
  3. Seleccione el espacio de nombres que desea administrar.
  4. Seleccione la pestaña Redes.
  5. Vaya a la sección siguiente adecuada en función de la operación que desee: aprobar, rechazar o eliminar.

Aprobación de una conexión de punto de conexión privado

  1. Si hay alguna conexión pendiente, verá una conexión que aparece con el estado Pendiente como estado de aprovisionamiento.

  2. Seleccione el punto de conexión privado que desea aprobar.

  3. Seleccione el botón Aprobar.

    Recorte de pantalla que muestra la pestaña Conexiones de punto de conexión privado con el botón Aprobar resaltado.

  4. En la página Aprobación de la conexión agregue un comentario (opcional), y seleccione . Si selecciona No, no ocurrirá nada.

  5. Ahora puede ver que el estado de la conexión de punto de conexión privado de la lista ha cambiado a Aprobado.

Rechazo de una conexión de punto de conexión privado

  1. Si hay conexiones de punto de conexión privado que desee rechazar, ya sea una solicitud pendiente o una conexión existente, seleccione la conexión y seleccione el botónRechazar.

    Recorte de pantalla que muestra la pestaña Conexiones de punto de conexión privado con el botón Rechazar resaltado.

  2. En la página Rechazo de la conexión, escriba un comentario (opcional), y seleccione . Si selecciona No, no ocurrirá nada.

  3. Ahora puede ver que el estado de la conexión de punto de conexión privado de la lista ha cambiado a Rechazado.

Eliminación de una conexión de punto de conexión privado

  1. Para eliminar una conexión de punto de conexión privado, selecciónela en la lista y seleccione Eliminar en la barra de herramientas.
  2. En la página Eliminar conexión, seleccione para confirmar la eliminación del punto de conexión privado. Si selecciona No, no ocurrirá nada.
  3. Ahora puede ver que el estado ha cambiado a Desconectado. A continuación, el punto de conexión desaparecerá de la lista.

Debe comprobar que los recursos de la red virtual del punto de conexión privado se conectan al espacio de nombres de Event Hubs mediante una dirección IP privada y que tienen la integración correcta de la zona DNS privada.

En primer lugar, cree una máquina virtual siguiendo los pasos que encontrará en Creación de una máquina virtual Windows en Azure Portal.

Haga clic en la pestaña Redes:

  1. Especifique Red virtual y Subred. Debe seleccionar la instancia de Virtual Network en la que implementó el punto de conexión privado.
  2. Especifique un recurso de dirección IP pública.
  3. En Grupo de seguridad de red de NIC, seleccione Ninguno.
  4. En Equilibrio de carga, seleccione No.

Conéctese a la máquina virtual, abra la línea de comandos y ejecute el siguiente comando:

nslookup <event-hubs-namespace-name>.servicebus.windows.net

Debería ver un resultado con el siguiente aspecto.

Non-authoritative answer:
Name:    <event-hubs-namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <event-hubs-namespace-name>.servicebus.windows.net

Limitaciones y consideraciones de diseño

  • Para más información sobre los precios, consulte Precios de Azure Private Link.
  • Esta característica está disponible en todas las regiones públicas de Azure.
  • Número máximo de puntos de conexión privados por espacio de nombres de Event Hubs: 120.
  • El tráfico se bloquea en el nivel de aplicación, no en la capa TCP. Por lo tanto, verá que las conexiones TCP o las operaciones nslookup tienen éxito en el punto de conexión público aunque el acceso público esté deshabilitado.

Para más información, consulte Servicio Azure Private Link: Limitaciones