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 puede enrutar 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, solo 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.

Pasos

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, puede establecer una de las tres opciones siguientes. Seleccione Deshabilitado si desea que solo se acceda al espacio de nombres a través de puntos de conexión privados.

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

      Networking page - public access tab - public network access is disabled.

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

      Networking page with the selected networks option selected.

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

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

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

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

    Networking page - Private endpoint connections tab - Add private endpoint link.

  7. 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. 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 no ser la misma que la del recurso de Private Link al que se está conectando.

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

      Create Private Endpoint - Basics page

  8. En la página Recurso, siga estos pasos:

    1. Como método de conexión, si selecciona Conectarse a un recurso de Azure en mi directorio. , siga estos pasos:
      1. Seleccione la suscripción de Azure en la que existe el espacio de nombres de Event Hubs.

      2. En Tipo de recurso, seleccione Microsoft.EventHub/namespaces para el tipo de recurso.

      3. En Recurso, seleccione un espacio de nombres de Event Hubs de la lista desplegable.

      4. Confirme que Subrecurso de destino está establecido en espacio de nombres.

      5. Seleccione Siguiente: Configuración situado en la parte inferior de la página.

        Create Private Endpoint - Resource page

    2. Si selecciona Conéctese a un recurso de Azure por identificador de recurso o alias. , siga estos pasos:
      1. Escriba el identificador de recurso o alias. Puede ser el identificador de recurso o el alias que alguien haya compartido con usted. La forma más fácil de obtener el identificador de recurso es desplazarse hasta el espacio de nombres de Event Hubs de Azure Portal y copiar la parte de URI a partir de /subscriptions/. Vea la imagen siguiente como ejemplo.

      2. En Subrecurso de destino, escriba espacio de nombres. Este es el tipo de subrecurso al que puede acceder el punto de conexión privado.

      3. (Opcional) Escriba un mensaje de solicitud. El propietario del recurso ve este mensaje mientras administra la conexión del punto de conexión privado.

      4. Posteriormente, seleccione el botón Siguiente: Configuración situado en la parte inferior de la página.

        Create Private Endpoint - Connect using resource ID

  9. En la página Configuración, 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. Seleccione el botón Siguiente: Etiquetas situado en la parte inferior de la página.

      Create Private Endpoint - Configuration page

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

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

    Create Private Endpoint - Review and Create page

  12. Confirme que la conexión de punto de conexión privado que ha creado aparece en la lista de puntos de conexión. 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.

    Private endpoint created

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 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 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 a Event Hubs 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 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.

Para permitir que los servicios de confianza accedan a su espacio de nombres, cambie a la pestaña Firewalls y redes virtuales 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 del 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 correspondiente a continuación según la operación que desee: aprobar, rechazar o quitar.

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.

    Approve private endpoint

  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 haga clic en el botón Rechazar.

    Reject private endpoint

  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, verá que el punto de conexión desaparece 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

Precios: Para más información sobre los precios, consulte Precios de Azure Private Link.

Limitaciones: 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.

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

Pasos siguientes