Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se enumeran los procedimientos recomendados importantes para desarrollar y ejecutar aplicaciones de Databricks. Estas directrices se centran en los requisitos de seguridad, rendimiento y plataforma.
Procedimientos recomendados generales
Use características nativas de Azure Databricks para el procesamiento de datos. El cálculo de la app está optimizado para la representación de la interfaz de usuario. Use Databricks SQL para consultas y conjuntos de datos, los trabajos de Lakeflow para el procesamiento por lotes y el servicio de modelos para las cargas de inferencia de IA. Descargue el procesamiento intensivo de datos en estos servicios para evitar problemas de rendimiento. Pruebe la aplicación en condiciones de carga esperadas para comprobar que cumple sus requisitos.
Implemente la gestión del apagado estable. La aplicación debe apagarse en un plazo de 15 segundos después de recibir una
SIGTERMseñal, o bien finalizar forzosamente conSIGKILL.Evite las operaciones con privilegios. Las aplicaciones se ejecutan como usuarios sin privilegios y no pueden realizar acciones que requieran permisos elevados, como el acceso raíz. No se pueden instalar paquetes de nivel de sistema mediante administradores de paquetes como
apt-get,yumoapk. En su lugar, use paquetes de Python de PyPI o paquetes de Node.js de npm para administrar las dependencias de su aplicación.Comprender las redes administradas por la plataforma. Las solicitudes se reenvieron a través de un proxy inverso, por lo que la aplicación no puede depender del origen de las solicitudes. Azure Databricks controla la terminación TLS y requiere que las aplicaciones admitan texto no cifrado HTTP/2 (H2C). No implemente el control de TLS personalizado.
Enlazar con el host y el puerto correctos. La aplicación debe escuchar
0.0.0.0y usar el puerto especificado en la variable de entornoDATABRICKS_APP_PORT. Consulte variables de entorno para obtener más información.Minimizar el tiempo de inicio del contenedor. Mantenga la lógica de inicialización ligera para reducir la latencia de inicio en frío. Evite las operaciones de bloqueo, como las instalaciones de dependencias grandes o las llamadas API externas durante el inicio. Cargue recursos pesados solo cuando sea necesario.
Inicie sesión en stdout y stderr. Azure Databricks captura los registros de los flujos de error y salida estándar. Úselos para todos los registros para asegurarse de que los registros están visibles en la interfaz de usuario de Azure Databricks. Evite escribir registros en archivos locales.
Controle los errores inesperados correctamente. Implemente el control global de excepciones para evitar errores no detectados. Devuelve respuestas de errores HTTP correctas sin exponer seguimientos de pila ni datos confidenciales.
Fije las versiones de dependencia. Use números de versión exactos en el
requirements.txtarchivo para garantizar entornos coherentes entre compilaciones. Evite usar las versiones más recientes o sin fijar de los paquetes.Valide y sane la entrada del usuario. Valide siempre los datos entrantes y los sane para evitar ataques de inyección o entradas con formato incorrecto, incluso en aplicaciones orientadas a internamente.
Use el almacenamiento en caché en memoria para operaciones costosas. Almacene en caché datos usados con frecuencia, como resultados de consultas o respuestas de API para reducir la latencia y evitar el procesamiento redundante. Usa
functools.lru_cache,cachetoolso bibliotecas similares, y delimita el ámbito de las cachés cuidadosamente en aplicaciones multiusuario.Use patrones de solicitud asincrónica para las operaciones de ejecución prolongada. Evite solicitudes sincrónicas que esperen a que se completen las operaciones, lo que puede agotar el tiempo de espera. En su lugar, realice una solicitud inicial para iniciar la operación y, a continuación, consulte periódicamente el estado del recurso o el punto de conexión para comprobar el estado de finalización.
Procedimientos recomendados de seguridad
Siga el principio de privilegios mínimos. Conceda solo los permisos necesarios para cada usuario o grupo. Use
CAN USEen lugar deCAN MANAGE, a menos que se requiera control total. Consulte Procedimientos recomendados para obtener permisos.Elija los métodos de autenticación cuidadosamente. Use entidades de servicio cuando el acceso a los recursos y los datos sea el mismo para todos los usuarios de la aplicación. Implemente solo la autenticación de usuario en áreas de trabajo con autores de aplicaciones de confianza y código de aplicación revisado por el mismo nivel, cuando la aplicación debe respetar los permisos del usuario que realiza la llamada.
Use entidades de servicio dedicadas para cada aplicación. No comparta las credenciales de principal de servicio entre aplicaciones o usuarios. Conceda solo los permisos mínimos necesarios, como
CAN USEoCAN QUERY. Rote las credenciales del principal de servicio cuando los creadores de aplicaciones abandonen la organización. Consulte Administración del acceso de la aplicación a los recursos.Aísle los entornos de la aplicación. Use diferentes áreas de trabajo para separar las aplicaciones de desarrollo, ensayo y producción. Esto evita el acceso accidental a los datos de producción durante el desarrollo y las pruebas.
Acceda a los datos a través de los recursos de cómputo adecuados. No configure la aplicación para acceder a los datos ni procesarlos directamente. Utilice almacenes de SQL para consultas, Model Serving para inferencia de IA, y Trabajos de Lakeflow para el procesamiento por lotes.
Administrar secretos. Nunca exponga valores secretos sin procesar en variables de entorno. Utiliza
valueFromen la configuración de tu aplicación y rota los secretos con regularidad, especialmente cuando cambian los roles dentro del equipo. Consulte Procedimientos recomendados.Minimice los ámbitos y registre las acciones del usuario. Al usar la autorización de usuario, solicite solo los ámbitos que necesita la aplicación y registre todas las acciones de usuario con registros de auditoría estructurados. Consulte Procedimientos recomendados para la autorización del usuario.
Restrinja el acceso de red saliente. Permitir solo los dominios que necesita la aplicación, como repositorios de paquetes y API externas. Use el modo de ejecución seca y los registros de denegación para validar la configuración. Consulte Procedimientos recomendados para configurar directivas de red.
Siga los procedimientos de codificación seguros. Parametrizar consultas SQL para evitar ataques de inyección y aplicar instrucciones generales de desarrollo seguro, como la validación de entrada y el control de errores. Consulte Statement Execution API: Run SQL on warehouses (API de ejecución de instrucciones: ejecución de SQL en almacenes).
Supervisar la actividad sospechosa. Revise periódicamente los registros de auditoría para conocer patrones de acceso inusuales o acciones no autorizadas. Configure alertas para eventos de seguridad críticos.