Configuración de redes para Aplicaciones de Databricks

Databricks Apps admite un control de red específico para ayudarle a proteger y administrar cómo se comunica la aplicación con Internet y los recursos internos. Puede configurar reglas de tráfico de entrada (entrantes) y de salida (salientes) mediante una combinación de listas de acceso IP, conectividad privada de front-end y directivas de red.

Arquitectura de red

Azure Databricks implementa aplicaciones en el plano de proceso sin servidor, donde reciben tráfico directamente. Esto es similar a otros servicios optimizados para rutas, como Servicio de modelos y Búsqueda de vectores.

El proceso de conexión funciona de la siguiente manera:

  1. Las solicitudes de usuario iniciales a una aplicación de Azure Databricks inician la autenticación de OAuth con el plano de control para validar la sesión y autorizar el acceso a la aplicación.
  2. Tras la autenticación correcta, todas las solicitudes posteriores se enrutan directamente al plano de proceso sin servidor sin atravesar el plano de control.

Las directivas de seguridad de red configuradas para el plano de proceso sin servidor se aplican al tráfico de Databricks Apps. Esto incluye listas de acceso IP y configuraciones de conectividad privada de front-end.

Controles de entrada

Use las siguientes características para limitar el acceso al área de trabajo y las aplicaciones de Azure Databricks desde la red pública de Internet.

  • Listas de acceso IP: Restrinja el acceso del área de trabajo y de la aplicación a intervalos IP conocidos y de confianza habilitando las listas de acceso IP en el nivel de área de trabajo. Solo se permite el tráfico desde los intervalos IP configurados. Para más información, consulte Configuración de listas de acceso IP para áreas de trabajo.
  • Conectividad privada de front-end: Enrutamiento del tráfico de entrada a través de una conexión de Azure Private Link para acceder de forma segura a las aplicaciones a través de la red virtual.

    Debe configurar el reenvío DNS condicional para el dominio databricksapps.com para garantizar la resolución de nombres adecuada a través de la conexión privada. De lo contrario, las consultas DNS del dominio de la aplicación podrían resolverse en direcciones IP públicas en lugar del punto de conexión privado. Para obtener instrucciones de configuración, consulte Configure Inbound Private Link.

    Las direcciones URL regionales heredadas no se admiten con las aplicaciones de Databricks porque no admiten OAuth, lo que es necesario para la autenticación de aplicaciones. Para más detalles, consulte URL regional heredada.

Controles de salida

Para controlar el tráfico saliente desde la aplicación, cree una configuración de conectividad de red (NCC) y aplique directivas de red al área de trabajo que hospeda la aplicación.

Configuraciones de conectividad de red

Usa una configuración de conectividad network para conectar tu aplicación de forma segura a Azure servicios. Las NCCs proporcionan identificadores de subred estables que puede agregar a un firewall de cuenta de almacenamiento para permitir explícitamente el acceso desde su aplicación y otros servicios sin servidor.

Para restringir aún más el tráfico de salida a destinos privados, configure puntos de conexión privados para servicios sin servidor de recursos de Azure o enrute el tráfico a través de un equilibrador de carga de Azure en su red virtual.

Directivas de red

Utilice directivas de red para aplicar restricciones de egreso en aplicaciones de Databricks y otras cargas de trabajo sin servidor. Esto resulta útil cuando necesita cumplir los requisitos de cumplimiento o de la organización para controlar la conectividad saliente.

Nota:

Las directivas de red solo están disponibles en el nivel Premium.

Aplique una directiva de red si su aplicación:

  • Debe limitar el acceso a un conjunto específico de dominios externos aprobados.
  • Necesita evitar la filtración accidental de datos
  • Debe cumplir con los estándares de seguridad o cumplimiento que restringen el tráfico saliente de Internet.

Dominios de salida necesarios para la implementación de aplicaciones

Al usar directivas de red de salida restringidas, debe incluir en la lista de dominios específicos para que las compilaciones de aplicaciones o el entorno de ejecución se realicen correctamente. Sin estos dominios, se produce un error en las implementaciones de aplicaciones porque el proceso de compilación no puede descargar dependencias ni comunicarse con los servicios necesarios.

Los dominios siguientes son necesarios para todas las implementaciones de aplicaciones de Databricks:

Dominio propósito
*.databricksapps.com Servicio de aplicaciones y conectividad de usuarios
pypi.org, files.pythonhosted.org Descargas de paquetes de Python durante las compilaciones de aplicaciones (necesario si tu aplicación usa requirements.txt)
registry.npmjs.org Descargas de paquetes de Node.js durante las compilaciones de aplicaciones (necesarias si tu aplicación usa package.json)

:::

Además, es posible que las implementaciones de Azure requieran estos dominios:

Dominio propósito
*.blob.core.windows.net Azure Blob Storage puntos de conexión usados por las aplicaciones que se conectan al almacenamiento de Azure
*.dfs.core.windows.net Puntos de conexión de Azure Data Lake Storage utilizados por aplicaciones que se conectan a ADLS

:::

:::

Es posible que la aplicación requiera dominios adicionales en función de las dependencias específicas o de las API externas a las que llama. Por ejemplo, si la aplicación llama a una API REST de terceros, agregue el dominio de esa API a la lista de permitidos.

Importante

En entornos de Private Link con salida restringida, las entradas que faltan en la lista de dominios permitidos suelen provocar fallas en la implementación de aplicaciones. Si la aplicación no se puede implementar, compruebe la tabla del system.access.outbound_network sistema para los intentos de conexión denegados para identificar qué dominios agregar. Consulte Comprobación de los registros de denegación.

Procedimientos recomendados para configurar directivas de red

Siga estas instrucciones para evitar interrupciones no deseadas y asegurarse de que las aplicaciones puedan acceder a los recursos necesarios:

  • Permitir solo destinos necesarios. Agregue nombres de dominio completos (FQDN) para los recursos públicos o privados que necesita la aplicación. Consulte Dominios de salida necesarios para la implementación de aplicaciones para el conjunto mínimo de dominios necesarios para la implementación.
  • Incluya repositorios de paquetes según sea necesario. Si la aplicación instala paquetes públicos de Python o Node.js, es posible que tenga que permitir dominios como pypi.org para Python o registry.npmjs.org para Node. La aplicación puede requerir dominios adicionales o diferentes en función de las dependencias específicas. Sin estos repositorios, las compilaciones de aplicaciones que se basan en requirements.txt o package.json podrían producir errores.
  • Use el modo de ejecución seca para validar la directiva de red. Este modo simula la aplicación de directivas sin bloquear el tráfico.
  • Revise los intentos de conexión denegados mediante la system.access.outbound_network tabla . Esto le ayuda a identificar dominios que es posible que necesite permitir. Consulte Comprobación de los registros de denegación.
  • Agregue los dominios externos necesarios, como las API de confianza o las cuentas de almacenamiento de Azure que no están registradas en Unity Catalog.

Si el área de trabajo usa conectividad privada de front-end, debe completar pasos de configuración adicionales para implementar y usar aplicaciones de Databricks. Sin esta configuración, es posible que se produzca un error en las implementaciones de aplicaciones o que los usuarios no puedan acceder a la aplicación.

Configuración de DNS

Debe configurar el reenvío DNS condicional para el dominio para que las direcciones URL de la databricksapps.com aplicación se resuelvan en direcciones IP privadas en lugar de direcciones IP públicas. Sin esta configuración, los usuarios detrás de una red privada no pueden acceder a las aplicaciones implementadas.

Agregue reglas de reenvío condicional para los siguientes dominios al servidor de Azure DNS:

  • *.databricksapps.com
  • *.azuredatabricks.net
  • *.privatelink.azuredatabricks.net

Compruebe que la red virtual se vincula a la zona de Azure Private DNS. Para obtener instrucciones detalladas de configuración de DNS, consulte Configuración de DNS personalizada.

Requisitos de salida

En entornos de Private Link con salida restringida, las aplicaciones requieren conectividad saliente a dominios específicos durante el tiempo de construcción y el tiempo de ejecución. Consulte Dominios de salida necesarios para la implementación de aplicaciones para obtener la lista completa de dominios que se van a incluir en la lista de permitidos.

Para configurar la salida de las aplicaciones en un entorno de Private Link:

  1. Cree o actualice una configuración de conectividad de red (NCC) y adjunte al área de trabajo que hospeda la aplicación.
  2. Cree o actualice una directiva de red para permitir la lista de los dominios necesarios.
  3. Use primero el modo de ejecución seca para validar la configuración sin bloquear el tráfico.
  4. Revise la tabla del sistema para ver los intentos de conexión denegados durante la system.access.outbound_network implementación de la aplicación.

Si la aplicación no se puede implementar en un entorno de Private Link:

  1. Compruebe los registros de denegación de salida. Consulte la tabla del system.access.outbound_network sistema para ver los eventos de denegación recientes. Consulte Comprobación de los registros de denegación.

    SELECT *
    FROM system.access.outbound_network
    WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
    ORDER BY event_time DESC;
    
  2. Compruebe la resolución DNS. Confirme que la dirección URL de la aplicación se resuelve en una dirección IP privada, no en una dirección IP pública. Use nslookup desde dentro de la red privada para comprobar lo siguiente:

    nslookup <your-app-name>.databricksapps.com
    
  3. Revise la configuración de la directiva de red. Compruebe que los dominios necesarios están en la lista de permitidos. Los dominios que faltan para los repositorios de paquetes (pypi.org, registry.npmjs.org) son la causa más común de errores de compilación.

  4. Reinicie la aplicación. Después de actualizar las directivas de red, vuelva a implementar o reinicie la aplicación para que las directivas actualizadas surtan efecto. Consulte Reinicio o reimplementación de cargas de trabajo sin servidor.

Cifrado y enrutamiento de tráfico

Databricks Apps usa rutas de enrutamiento dedicadas y varias capas de cifrado para proteger las comunicaciones de red y proteger los datos.

Enrutamiento del tráfico

El tráfico entre el plano de control Azure Databricks, el plano de proceso, otros recursos Azure Databricks y los servicios en la nube viaja a través de la red global del proveedor de nube y no atraviesa la red pública de Internet.

El tráfico entre los usuarios y databricksapps.com podría atravesar la red pública de Internet en función de la ubicación de red del usuario. Para evitar el enrutamiento público de Internet, configure la conectividad privada de front-end.

Cifrado en tránsito

Todas las comunicaciones de red hacia y desde las aplicaciones se cifran:

  • Tráfico de usuario: La comunicación entre los usuarios y databricksapps.com usa el cifrado de seguridad de la capa de transporte (TLS) 1.3.
  • Tráfico del plano de control: La comunicación entre el plano de control y el plano de cálculo de Azure Databricks utiliza TLS mutuo (mTLS) para las operaciones de gestión, incluidas la creación de aplicaciones, actualizaciones y eliminación.

Cifrado en reposo

Databricks Apps cifra los datos almacenados mediante los métodos siguientes:

  • Código de aplicación: Azure Databricks almacena el código de la aplicación en archivos de área de trabajo y usa el mismo cifrado que los cuadernos y otros archivos de área de trabajo.
  • Almacenamiento de proceso: Las aplicaciones usan discos de sistema operativo del host efímero cifrados con AES-256 y la implementación de cifrado predeterminada del proveedor de nube.