Integración de Azure Relay con Azure Private Link

El servicio Azure Private Link le permite acceder a los servicios de Azure (por ejemplo, Azure Relay, Azure Service Bus, Azure Event Hubs, Azure Storage y Azure Cosmos DB) y a los servicios de asociados o clientes hospedados por Azure mediante un punto de conexión privado de la red virtual. Para más información, consulte ¿Qué es Azure Private Link?

Un punto de conexión privado es una interfaz de red que permite que las cargas de trabajo que se ejecutan en una red virtual se conecten de forma privada y segura a un servicio que tiene un recurso de vínculo privado (por ejemplo, un espacio de nombres de Relay). 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 necesitan puertas de enlace, dispositivos NAT, ExpressRoute, conexiones de 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 proporcionar un nivel de granularidad en el control de acceso si permite conexiones a espacios de nombres de Azure Relay específicos.

Nota:

Si usa el agente de escucha de retransmisión a través de un vínculo privado, abra los puertos 9400-9599 para la comunicación saliente junto con los puertos de retransmisión estándar. Tenga en cuenta que solo debe realizar este paso para el agente de escucha de retransmisión.

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

Requisitos previos

Para integrar un espacio de nombres de Azure Relay con Azure Private Link, necesita las siguientes entidades o permisos:

  • Un espacio de nombres de Azure Relay.
  • Una red virtual de Azure.
  • Una subred en la red virtual.
  • Permisos de propietario o colaborador para 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.

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

El procedimiento siguiente proporciona instrucciones paso a paso para deshabilitar el acceso público a un espacio de nombres de Relay y, a continuación, agregar un punto de conexión privado al espacio de nombres.

  1. Inicie sesión en Azure Portal.

  2. En la barra de búsqueda, escriba Retransmisiones.

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

  4. En el menú de la izquierda, seleccione la pestaña Redes en Configuración.

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

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

  7. Seleccione la pestaña Conexiones de puntos de conexión privado en la parte superior de la página.

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

    Captura de pantalla que muestra la selección del botón Agregar punto de conexión privado en la pestaña Conexiones de punto de conexión privado de la página Redes.

  9. 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 no ser la misma que la del espacio de nombres de Azure Relay 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.

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

  11. En la página Red virtual, seleccione la subred y la red virtual en la que quiera implementar el punto de conexión privado. En la lista desplegable, solo se muestran las redes virtuales de la suscripción y la ubicación seleccionadas actualmente.

    Captura de pantalla que muestra la página Red virtual del asistente Crear un punto final privado.

    Puede configurar si desea asignar dinámicamente una dirección IP o asignar estáticamente una dirección IP al punto de conexión privado.

    También puede asociar un grupo de seguridad de aplicaciones nuevo o existente al punto de conexión privado.

  12. Seleccione Siguiente: DNS para ir a la página DNS del asistente. En la página DNS, la opción Integrar con la zona DNZ privada está habilitada de forma predeterminada (recomendado). Tiene una opción para deshabilitarla.

    Captura de pantalla que muestra la página DNS del asistente para crear un punto final privado.

    Para conectar de forma privada con el punto de conexión privado, necesita un registro DNS. Se recomienda integrar el punto de conexión privado con una zona DNS privada. También puede usar sus propios servidores DNS o crear registros de DNS con los archivos host de sus máquinas virtuales. Para obtener más información, consulte Configuración de DNS para puntos de conexión privados de Azure.

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

  14. En la página Etiquetas, cree todas las etiquetas (nombres y valores) que desee asociar al punto de conexión privado y la zona DNS privada (si tenía la opción habilitada). Después, en la parte inferior de la página, seleccione el botón Revisar y crear.

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

  16. En la página Punto de conexión privado, puede ver el estado de la conexión del punto de conexión privado. Si es el propietario del espacio de nombres de Relay o tiene acceso de administración sobre este y ha seleccionado la opción Conectarse a un recurso de Azure en mi directorio en Método de conexión, la conexión del punto de conexión debe ser Aprobada automáticamente. Si está en el estado pendiente, consulte la sección Administración de puntos de conexión privados desde Azure Portal.

    Captura de pantalla que muestra la página Endpoint privado en el portal Azure.

  17. Vuelva a la página Redes del espacio de nombres y cambie a la pestaña Conexiones de punto de conexión privado. Debería ver el punto de conexión privado que ha creado.

    Captura de pantalla que muestra la pestaña Conexiones de punto de conexión privado de la página Redes con el punto de conexión privado que acaba de crear.

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 a un espacio de nombres de Azure Relay.

El punto de conexión privado y la red virtual deben estar en la misma región. El espacio de nombres de Azure Relay puede estar en una región diferente. Y el punto de conexión privado usa una dirección IP privada en la red virtual.


$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VNET 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 a relay namespace
$namespaceResource = New-AzResource -Location $namespaceLocation -ResourceName $namespaceName -ResourceGroupName $rgName -Properties @{} -ResourceType "Microsoft.Relay/namespaces" 

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

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

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


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 (espacio de nombres de Relay) para el que va a crear un punto de conexión privado está en su directorio, puede aprobar la solicitud de conexión siempre que tenga privilegios de administración sobre el espacio de nombres de Relay. Si se va a conectar a un espacio de nombres de Relay para el que no tiene acceso de administración, 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 espacio de nombres de Azure Relay.
Aprobación Aprobado La conexión se aprobó de forma automática o manual y está lista para usarse.
Reject Rechazada El propietario del espacio de nombres de Azure Relay rechazó la conexión.
Remove Escenario desconectado El propietario del espacio de nombres de Azure Relay 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 Retransmisión.
  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.

    Captura de pantalla que muestra el botón Aprobar en la barra de comandos del punto de conexión privado seleccionado.

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

    Captura de pantalla que muestra la página Aprobar conexión solicitando la confirmación.

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

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

  1. Si hay conexiones del punto de conexión privado que quiere rechazar, ya sea una solicitud pendiente o una conexión existente que se aprobó antes, seleccione la conexión del punto de conexión y seleccione el botón Rechazar.

    Captura de pantalla que muestra el botón Rechazar en la barra de comandos del punto de conexión privado seleccionado.

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

    Captura de pantalla que muestra la página Rechazar conexión que solicita la confirmación.

  3. Ahora puede ver que el estado de la conexión 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.

    Captura de pantalla que muestra el botón Quitar de la barra de comandos del punto de conexión privado seleccionado.

  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.

    Captura de pantalla que muestra la página Eliminar conexión que le pide la confirmación.

  3. Ahora puede ver que el estado ha cambiado a Desconectado. Posteriormente, no verá el punto de conexión en la lista.

Debe validar que los recursos de la red virtual del punto de conexión privado se están conectando a su espacio de nombres de Azure Relay a través de su dirección IP privada.

Para esta prueba, 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. Seleccione 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 VM, abra la línea de comandos y ejecute el siguiente comando:

nslookup <your-relay-namespace-name>.servicebus.windows.net

Debería ver un resultado con el siguiente aspecto.

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

Limitaciones y consideraciones de diseño

Consideraciones de diseño

Limitaciones

  • Número máximo de puntos de conexión privados por espacio de nombres de Azure Relay: 64.
  • Número máximo de espacios de nombres de Azure Relay con puntos de conexión privados por suscripción: 64.
  • Las reglas de grupo de seguridad de red (NSG) y las rutas definidas por el usuario no se aplican al punto de conexión privado. Para más información, consulte Servicio Azure Private Link: Limitaciones.

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 Machine Learning Kubernetes de AML usa Azure Relay para facilitar la comunicación entre los servicios de AML y el clúster de Kubernetes. Azure Relay es un servicio totalmente administrado que proporciona una comunicación bidireccional segura entre las aplicaciones hospedadas en diferentes redes. Esto hace que sea ideal para su uso en entornos de vínculo privado, donde la comunicación entre los recursos de Azure y los recursos locales está restringida.
Azure Arc Los servicios habilitados para Azure Arc asociados a los proveedores de recursos anteriores podrán conectarse a las conexiones híbridas del espacio de nombres de Azure Relay como remitente sin que las reglas de firewall de IP establecidas en el espacio de nombres de Azure Relay bloqueen. Microsoft.Hybridconnectivity el servicio crea las conexiones híbridas en el espacio de nombres de Azure Relay y proporciona la información de conexión al servicio de Arc pertinente en función del escenario. Estos servicios solo se comunican con el espacio de nombres de Azure Relay si usa Azure Arc, con los siguientes servicios de Azure:

- Azure Kubernetes
- Azure Machine Learning
- Microsoft Purview

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

  • Azure Event Grid
  • Azure IoT Hub
  • Azure Stream Analytics
  • Azure Monitor
  • Azure API Management
  • Azure Synapse
  • Explorador de datos de Azure
  • Azure IoT Central
  • Azure Healthcare Data Services
  • Azure Digital Twins

Nota:

En la versión 2021-11-01 o posterior del SDK de Microsoft Relay, la propiedad "trustedServiceAccessEnabled" está disponible en las propiedades Microsoft.Relay/namespaces/networkRuleSets para habilitar el acceso de servicio de confianza.

Para permitir servicios de confianza en plantillas de Azure Resource Manager, incluya esta propiedad en la plantilla:

"trustedServiceAccessEnabled": "True"

Por ejemplo, en función de la plantilla de ARM proporcionada anteriormente, podemos modificarla para incluir esta propiedad Conjunto de reglas de red para la habilitación de servicios de confianza:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespaces_name": {
            "defaultValue": "contosorelay0215",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Relay/namespaces",
            "apiVersion": "2021-11-01",
            "name": "[parameters('namespaces_name')]",
            "location": "East US",
            "sku": {
                "name": "Standard",
                "tier": "Standard"
            },
            "properties": {}
        },
        {
            "type": "Microsoft.Relay/namespaces/authorizationrules",
            "apiVersion": "2021-11-01",
            "name": "[concat(parameters('namespaces_sprelayns0215_name'), '/RootManageSharedAccessKey')]",
            "location": "eastus",
            "dependsOn": [
                "[resourceId('Microsoft.Relay/namespaces', parameters('namespaces_sprelayns0215_name'))]"
            ],
            "properties": {
                "rights": [
                    "Listen",
                    "Manage",
                    "Send"
                ]
            }
        },
        {
            "type": "Microsoft.Relay/namespaces/networkRuleSets",
            "apiVersion": "2021-11-01",
            "name": "[concat(parameters('namespaces_sprelayns0215_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.Relay/namespaces', parameters('namespaces_sprelayns0215_name'))]"
            ],
            "properties": {
                "trustedServiceAccessEnabled": "True",
                "publicNetworkAccess": "Enabled",
                "defaultAction": "Deny",
                "ipRules": [
                    {
                        "ipMask": "172.72.157.204",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "10.1.1.1",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "11.0.0.0/24",
                        "action": "Allow"
                    }
                ]
            }
        }
    ]
}

Pasos siguientes