Compartir vía


Habilitar conexiones de back-end y front-end de Azure Private Link

En este artículo se resume el uso de Azure Private Link para habilitar la conectividad privada entre los usuarios y sus áreas de trabajo de Databricks, así como entre los clústeres del plano de proceso clásico y los servicios principales del plano de control dentro de la infraestructura del área de trabajo de Databricks.

Para cambiar el acceso de red para almacenes de SQL sin servidor, consulte Configuración de la conectividad privada desde el proceso sin servidor.

Información general

Private Link proporciona conectividad privada desde redes virtuales de Azure y redes locales a servicios de Azure sin exponer el tráfico a la red pública. Azure Databricks admite los siguientes tipos de conexión Private Link:

  • Front-end Private Link, también conocido como usuario al área de trabajo: una conexión de front-end Private Link permite a los usuarios conectarse a la aplicación web de Azure Databricks, la API REST y la API de Databricks Connect a través de un punto de conexión de interfaz de red virtual. La conexión front-end también la usan las integraciones JDBC/ODBC y Power BI. El tráfico de red para una conexión front-end Private Link entre una red virtual de tránsito y el plano de control de Azure Databricks del área de trabajo atraviesa la red troncal de Microsoft.
  • Private Link de back-end, también conocido como plano de proceso a plano de control: los clústeres de Databricks Runtime de una red virtual administrada por el cliente (el plano de proceso) se conectan a los servicios principales del área de trabajo de Azure Databricks (el plano de control) de la cuenta en la nube de Azure Databricks. Esto permite la conectividad privada de los clústeres a la retransmisión de conectividad de clústeres segura y al punto de conexión de la API REST.
  • Punto de conexión privado de autenticación del explorador: para admitir conexiones front-end privadas a la aplicación web de Azure Databricks para clientes que no tienen conexión a Internet, debe agregar un punto de conexión privado de autenticación del explorador para admitir devoluciones de llamada de inicio de sesión único (SSO) a la aplicación web de Azure Databricks desde Microsoft Entra ID (antes Azure Active Directory). Si permite conexiones desde su red a la red pública de internet, se recomienda, pero no es necesario, agregar un punto de conexión privado de autenticación del explorador. Un punto de conexión privado de autenticación del explorador es una conexión privada con el tipo de subrecurso browser_authentication.

Si implementa Private Link para tanto las conexiones de front-end como las de back-end, puede ordenar opcionalmente la conectividad privada para el área de trabajo, lo que significa que Azure Databricks rechaza cualquier conexión a través de la red pública. Si rechaza implementar ambos tipos de conexión front-end o back-end, no puede aplicar este requisito.

Los conjuntos de datos de Unity Catalog de ejemplo y los conjuntos de datos de Azure Databricks no están disponibles cuando se configura Private Link de back-end. Consulte Conjuntos de datos de muestra.

La mayor parte de este artículo trata sobre la creación de una nueva área de trabajo, pero puede habilitar o deshabilitar Private Link en un área de trabajo existente. Consulte Habilitar o deshabilitar Azure Private Link en un área de trabajo existente.

Terminología

La siguiente tabla describe la terminología importante.

Terminología Descripción
Azure Private Link Una tecnología de Azure que proporciona conectividad privada desde redes virtuales de Azure y redes locales a los servicios de Azure sin exponer el tráfico a la red pública.
Servicio Azure Private Link Un servicio que puede ser el destino de una conexión de Private Link. Cada instancia del plano de control de Azure Databricks publica un servicio de Azure Private Link.
Punto de conexión privado de Azure Un punto de conexión privado de Azure habilita una conexión privada entre una red virtual y un servicio de Private Link. Para la conectividad de front-end y back-end, el destino de un punto de conexión privado de Azure es el plano de control de Azure Databricks.

Para obtener información general sobre los puntos de conexión privados, consulte el artículo de Microsoft ¿Qué es un punto de conexión privado?.

Elección de una implementación estándar o simplificada

Hay dos tipos de implementación de Private Link que Azure Databricks admite y debe elegir uno de ellos:

  • Implementación estándar (recomendada): para mejorar la seguridad, Databricks recomienda usar un punto de conexión privado independiente para la conexión front-end desde una red virtual de tránsito. independiente. Puede implementar conexiones de front-end y back-end Private Link o simplemente la conexión back-end. Use una red virtual independiente para encapsular el acceso de usuarios, independiente de la red virtual que use para los recursos de proceso en el plano de proceso clásico. Cree puntos de conexión de Private Link independientes para el acceso de back-end y front-end. Siga las instrucciones de Habilitación de Azure Private Link como implementación estándar.
  • Implementación simplificada: algunas organizaciones no pueden usar la implementación estándar por diversos motivos de la directiva de red, como no permitir más de un punto de conexión privado o no fomentar el uso de redes virtuales de tránsito independientes. También puede usar la implementación simplificada de Private Link. Ninguna red virtual independiente separa el acceso de los usuarios de la red virtual que se usa para los recursos de proceso en el plano de proceso clásico. En su lugar, se usa una subred de tránsito en la red virtual del plano de proceso para el acceso de usuarios. Solo hay un único punto de conexión de Private Link. Normalmente, se configura la conectividad de front-end y back-end. Opcionalmente, puede configurar solo la conexión de back-end. No puede elegir usar solo las conexiones de front-end en este tipo de implementación. Siga las instrucciones de Habilitación de Azure Private Link como implementación simplificada.

Requisitos

Suscripción de Azure

El área de trabajo de Azure Databricks debe estar en el plan Premium.

Arquitectura de red de área de trabajo de Azure Databricks

  • El área de trabajo de Azure Databricks debe usar la inserción de red virtual para agregar cualquier conexión de Private Link (incluso una conexión de solo front-end).
  • Si implementa la conexión de Private Link de back-end, el área de trabajo de Azure Databricks debe usar la conectividad de clúster segura (sin IP pública o NPIP).
  • Necesita una red virtual que cumpla los requisitos de inserción de red virtual.
    • Debe definir dos subredes (denominadas en la interfaz de usuario como la subred pública y la subred privada). Los intervalos IP de red virtual y subred que se usan para Azure Databricks definen el número máximo de nodos de clúster que puede usar a la vez.
    • Para implementar Private Link front-end, Private Link back-end o ambas, la red virtual del área de trabajo necesita una tercera subred que contenga el punto de conexión de Private Link y su intervalo de direcciones IP no debe superponerse con el intervalo de las demás subredes del área de trabajo. En este artículo se hace referencia a esta tercera subred como subred del punto de conexión privado. Los ejemplos y las capturas de pantalla suponen el nombre de subred private-link. Puede ser tan pequeño como el rango CIDR /27. No defina ninguna regla de NSG para una subred que contenga puntos de conexión privados.
    • Si usa la interfaz de usuario para crear objetos, debe crear manualmente la red y las subredes antes de crear el área de trabajo de Azure Databricks. Si desea usar una plantilla, la plantilla que proporciona Azure Databricks crea una red virtual y las subredes adecuadas, incluidas las dos subredes normales más otra para los puntos de conexión privados.
  • Si tiene una directiva de grupos de seguridad de red habilitada en el punto de conexión privado, debe permitir los puertos 443, 6666, 3306 y 8443-8451 para la Reglas de seguridad de entrada en el grupo de seguridad de red en la subred donde se implementa el punto de conexión privado.
  • Para conectarse entre su propia red y Azure Portal y sus servicios, es posible que tenga que agregar direcciones URL de Azure Portal a la lista de permitidos. Consulte Permitir las direcciones URL de Azure Portal en el servidor proxy o firewall

Arquitectura de red de conexión de front-end

Solo para Private Link de front-end, para que los usuarios accedan al área de trabajo desde una red local, es preciso agregar conectividad privada desde esa red a la red de Azure propia. Agregue esta conectividad antes de configurar Private Link. Los detalles varían en función de si elige la implementación estándar de Private Link o la implementación simplificada.

  • Para la implementación estándar, crearía o usaría una red virtual de tránsito existente, a veces denominada red virtual bastión o una red virtual central. A esta red virtual se debe poder acceder desde el entorno de usuario local mediante Expressroute o una conexión de puerta de enlace de VPN. Para el front-end de Private Link, Databricks recomienda crear una red virtual independiente para la conectividad con el plano de control, en lugar de compartir la red virtual del área de trabajo. Tenga en cuenta que la red virtual de tránsito y su subred pueden estar en la misma región, zona y grupo de recursos que la red virtual del área de trabajo y sus subredes, pero no tienen que coincidir. Cree un grupo de recursos para la red virtual de tránsito independiente y usar una zona DNS privada diferente para ese punto de conexión privado. Si usa dos puntos de conexión privados independientes, no puede compartir la zona DNS.
  • Para la implementación simplificada se crea una subred de tránsito en la red virtual del área de trabajo. En esta implementación, la subred de tránsito no tiene un punto de conexión privado independiente. La subred de tránsito de la red virtual del área de trabajo usa un único punto de conexión privado para las conexiones de back-end y front-end.

Permisos de usuario de Azure

Como usuario de Azure, debe tener permisos de lectura y escritura suficientes para:

  • Aprovisionar una nueva área de trabajo de Azure Databricks.
  • Crear puntos de conexión Azure Private Link en la red virtual del área de trabajo y también (para el uso front-end) de la red virtual de tránsito.

Si el usuario que creó el punto de conexión privado para la red virtual de tránsito no tiene permisos de propietario o colaborador para el área de trabajo, un usuario independiente con permisos de propietario o colaborador para el área de trabajo debe aprobar manualmente la solicitud de creación del punto de conexión privado.

Puede habilitar Private Link en un área de trabajo existente. La actualización requiere que el área de trabajo use la inyección de VNet, la conectividad de clúster segura y el plan de tarifa Premium. Puede actualizar a la conectividad de clúster segura y al plan de tarifa Premium durante la actualización.

Puede usar una plantilla de ARM o azurerm una versión del proveedor Terraform 3.41.0 y versiones posteriores. Puede usar Azure Portal para aplicar una plantilla personalizada y modificar el parámetro en la interfaz de usuario. Sin embargo, no hay compatibilidad con la interfaz de usuario de Azure Portal para esta actualización en la propia instancia del área de trabajo de Azure Databricks.

Si hay algún problema con la actualización, puede repetir el paso de actualización del área de trabajo, pero tendrá que configurar los campos para deshabilitar Private Link.

Aunque esta sección se centra en habilitar Private Link en un área de trabajo existente, puede deshabilitarla en un área de trabajo existente mediante la misma llamada de actualización del área de trabajo con la plantilla de ARM o una actualización de Terraform. Consulte el Paso 4: Aplicar la actualización del área de trabajo para obtener más información.

Paso 1: Lea los requisitos y la documentación en esta página

Antes de intentar una actualización a Private Link hay conceptos y requisitos importantes que debe leer:

  1. Lea este artículo, incluidos los conceptos y los requisitos antes de continuar.
  2. Determine si desea usar la implementación estándar o la simplificada.
  3. En la página para la implementación estándar o la implementación simplificada (según el enfoque que se use), revise detenidamente la página, incluidos los distintos escenarios. Busque el escenario que coincida con su caso de uso. Anote los valores que desea usar para publicNetworkAccess y requiredNsgRules. Para la configuración recomendada de Private Link de front-end y back-end con la conectividad de front-end bloqueada, use las configuraciones publicNetworkAccess=Disabled y requiredNsgRules=NoAzureDatabricksRules

Paso 2: Detener todos los recursos de proceso

Antes de intentar esta actualización, debe detener todos los recursos de proceso, como clústeres, grupos o almacenes de SQL clásicos. No se puede ejecutar ningún recurso de proceso del área de trabajo o se produce un error en el intento de actualización. Databricks recomienda planificar la actualización teniendo en cuenta el tiempo de inactividad.

Importante

No intente iniciar ningún recurso de proceso durante la actualización. Si Azure Databricks determina que los recursos de proceso se iniciaron (o siguen iniciándose), Azure Databricks los finaliza después de la actualización.

Paso 3: Crear subredes y puntos de conexión privados

  1. Agregue una subred a la red virtual del área de trabajo para los puntos de conexión privados de back-end.

  2. Abra el artículo para la implementación estándar o la implementación simplificada (según el enfoque que se use).

    Siga las instrucciones de esa página para crear los puntos de conexión privados que correspondan a su tipo de implementación.

  3. Cree todos los puntos de conexión privados para la compatibilidad de back-end antes de realizar la actualización del área de trabajo.

  4. Para el acceso a la interfaz de usuario, cree un punto de conexión privado con un subrecurso databricks_ui_api que admita el inicio de sesión único desde su red virtual de tránsito. Si tiene más de una red virtual de tránsito que accede al área de trabajo para el acceso de front-end, cree varios puntos de conexión privados con un subrecurso databricks_ui_api.

Paso 4: Aplicar la actualización del área de trabajo

En lugar de crear una nueva área de trabajo, debe aplicar la actualización del área de trabajo.

Debe actualizar los parámetros publicNetworkAccess y requiredNsgRules a los valores que eligió en un paso anterior.

Use uno de estos métodos:

Aplicar una plantilla ARM actualizada mediante el Azure portal

Nota:

Si el grupo de recursos administrado tiene un nombre personalizado, debe modificar la plantilla en consecuencia. Póngase en contacto con el equipo de la cuenta de Azure Databricks para obtener más información.

  1. Copie el siguiente código JSON de la plantilla de ARM de actualización:

    {
       "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
       "contentVersion": "1.0.0.0",
       "parameters": {
           "location": {
               "defaultValue": "[resourceGroup().location]",
               "type": "String",
               "metadata": {
                   "description": "Location for all resources."
               }
           },
           "workspaceName": {
               "type": "String",
               "metadata": {
                   "description": "The name of the Azure Databricks workspace to create."
               }
           },
           "apiVersion": {
               "defaultValue": "2023-02-01",
               "allowedValues": [
                "2018-04-01",
                   "2020-02-15",
                   "2022-04-01-preview",
                   "2023-02-01"
               ],
               "type": "String",
               "metadata": {
                   "description": "2018-03-15 for 'full region isolation control plane' and 2020-02-15 for 'FedRAMP certified' regions"
               }
           },
           "publicNetworkAccess": {
               "defaultValue": "Enabled",
               "allowedValues": [
                   "Enabled",
                   "Disabled"
               ],
               "type": "String",
               "metadata": {
                   "description": "Whether the workspace allows access from the public Internet"
               }
           },
           "requiredNsgRules": {
               "defaultValue": "AllRules",
               "allowedValues": [
                   "AllRules",
                   "NoAzureDatabricksRules"
               ],
               "type": "String",
               "metadata": {
                   "description": "The security rules that are applied to the security group of the Vnet"
               }
           },
           "enableNoPublicIp": {
               "defaultValue": true,
               "type": "Bool"
           },
           "pricingTier": {
               "defaultValue": "premium",
               "allowedValues": [
                   "premium",
                   "standard",
                   "trial"
               ],
               "type": "String",
               "metadata": {
                   "description": "The pricing tier of workspace."
               }
           },
           "privateSubnetName": {
               "defaultValue": "private-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the private subnet."
               }
           },
           "publicSubnetName": {
               "defaultValue": "public-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the public subnet."
               }
           },
           "vnetId": {
               "type": "String",
               "metadata": {
                   "description": "The virtual network Resource ID."
               }
           }
       },
       "variables": {
           "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]",
           "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', variables('managedResourceGroupName'))]"
        },
        "resources": [
           {
               "type": "Microsoft.Databricks/workspaces",
               "apiVersion": "[parameters('apiVersion')]",
               "name": "[parameters('workspaceName')]",
               "location": "[parameters('location')]",
               "sku": {
                   "name": "[parameters('pricingTier')]"
               },
               "properties": {
                   "ManagedResourceGroupId": "[variables('managedResourceGroupId')]",
                   "publicNetworkAccess": "[parameters('publicNetworkAccess')]",
                   "requiredNsgRules": "[parameters('requiredNsgRules')]",
                   "parameters": {
                       "enableNoPublicIp": {
                           "value": "[parameters('enableNoPublicIp')]"
                       },
                       "customVirtualNetworkId": {
                           "value": "[parameters('vnetId')]"
                       },
                       "customPublicSubnetName": {
                           "value": "[parameters('publicSubnetName')]"
                       },
                       "customPrivateSubnetName": {
                           "value": "[parameters('privateSubnetName')]"
                       }
                   }
               }
           }
       ]
    }
    
    1. Vaya a la página Implementación personalizada de Azure Portal.

    2. Haga clic en Cree su propia plantilla en el editor.

    3. Pegue el código JSON de la plantilla que copió.

    4. Haga clic en Save(Guardar).

    5. Para habilitar Private Link, establezca los parámetros publicNetworkAccess y requiredNsgRules según el caso de uso.

      Para deshabilitar Private Link, establezca publicNetworkAccess en true y requiredNsgRules en AllRules.

    6. Para otros campos, use los mismos parámetros que usó para crear el área de trabajo, como la suscripción, la región, el nombre del área de trabajo, los nombres de subred o el id. de recurso de la red virtual existente.

      Importante

      El nombre del grupo de recursos, el nombre del área de trabajo y los nombres de subred deben ser idénticos al área de trabajo existente para que este comando actualice el área de trabajo existente en lugar de crear una nueva área de trabajo.

    7. Haga clic en Revisar y crear.

    8. Si no hay ningún problema de validación, haga clic en Crear.

    La actualización de la red puede tardar más de 15 minutos en completarse.

Aplicar una actualización mediante Terraform

En el caso de las áreas de trabajo creadas con Terraform, puede actualizar el área de trabajo para usar Private Link.

Importante

Debe usar la versión del terraform-provider-azurerm 3.41.0 o posterior, por lo que debe actualizar la versión del proveedor de Terraform según sea necesario. Las versiones anteriores intentan volver a crear el área de trabajo si cambia alguna de estas opciones de configuración.

Los pasos generales son los siguientes:

  1. Cambie la siguiente configuración del área de trabajo:

    • public_network_access_enabled: establecer en true (Habilitado) o false (Deshabilitado)
    • network_security_group_rules_required: establecer en AllRules o NoAzureDatabricksRules.

    La actualización de la red puede tardar más de 15 minutos en completarse.

  2. Cree los puntos de conexión privados.

Para obtener una guía detallada sobre cómo habilitar Private Link y crear los puntos de conexión privados:

La actualización de la red puede tardar más de 15 minutos en completarse.

Paso 5: Probar la autenticación de SSO de usuario y la conectividad de back-end

Siga la página de implementación principal para obtener más información sobre cómo:

  • Probar la autenticación del inicio de sesión único en el área de trabajo.
  • Probar la conexión de Private Link de back-end (necesaria para una conexión de back-end)

Paso 6: Validar la actualización

  1. Vaya a la instancia de servicio de Azure Databricks en Azure Portal.
  2. En el panel de navegación izquierdo, en Configuración, haga clic en Redes.
  3. Confirme que el valor de Permitir el acceso de red pública coincide con el valor que ha establecido.
  4. Confirme que el valor de Reglas de NSG requeridas coincide con el valor que ha establecido.

Recuperación de un error

Si se produce un error en una actualización del área de trabajo, es posible que el área de trabajo se marque con un estado de Error, lo que significa que el área de trabajo no puede realizar operaciones de proceso. Para restaurar un área de trabajo con errores al estado Activo, revise las instrucciones del mensaje de estado de la operación de actualización. Una vez corregidos los problemas, rehaga la actualización en el área de trabajo con errores. Repita los pasos hasta que se complete correctamente la actualización. Si tiene alguna pregunta, póngase en contacto con su equipo de cuentas de Azure Databricks.