Configurer le réseau pour Databricks Apps
Databricks Apps prend en charge le contrôle réseau granulaire pour vous aider à sécuriser et à gérer la façon dont votre application communique avec Internet et les ressources internes. Vous pouvez configurer les règles de trafic d'entrée (entrant) et de sortie (sortant) à l'aide d'une combinaison de listes d'accès IP, de connectivité privée front-end et de politiques réseau.
Architecture réseau
Databricks déploie des applications sur le plan de Serverless compute, où elles reçoivent directement le trafic. Ceci est similaire à d'autres services optimisés par itinéraire, tels que Model Serving et AI Search.
Le processus de connexion fonctionne comme suit :
- Les requêtes utilisateur initiales vers une application Databricks initient l'authentification OAuth avec le plan de contrôle pour valider la session et autoriser l'accès à l'application.
- Après une authentification réussie, toutes les requêtes ultérieures sont acheminées directement vers le plan de compute serverless sans traverser le plan de contrôle.
Les politiques de sécurité réseau configurées pour le plan de compute Serverless s'appliquent au trafic des Databricks Apps. Ceci inclut les listes d'accès IP et les configurations de connectivité privée front-end.
Contrôles d'entrée
Utilisez les fonctionnalités suivantes pour limiter l'accès à votre Workspace Databricks et à vos applications depuis l'Internet public.
-
Listes d'accès IP : Restreignez l'accès au Workspace et aux applications aux plages d'adresses IP connues et fiables en activant les listes d'accès IP au niveau du Workspace. Seul le trafic provenant des plages d'adresses IP configurées est autorisé. Pour plus de détails, consultez Configurer les listes d'accès IP pour les Workspace.
-
Connectivité privée du front-end : acheminez le trafic entrant via votre propre Endpoint d'interface VPC au lieu de l'Internet public.
Vous devez configurer le transfert DNS conditionnel pour le domaine
databricksapps.comafin d'assurer une résolution de noms correcte via votre connexion privée. Autrement, les queries DNS pour le domaine de votre application pourraient résoudre vers des adresses IP publiques au lieu de l'endpoint privé. Pour les instructions de configuration, consultez Configurer Private Service Connect frontal.
:::
Contrôles de sortie
Pour contrôler le trafic sortant de votre application, appliquez des politiques de réseau au workspace hébergeant l'application.
Politiques de réseau
Utilisez les politiques réseau pour appliquer des restrictions de sortie aux applications Databricks et autres charges de travail Serverless. Ceci est utile lorsque vous devez satisfaire aux exigences organisationnelles ou de conformité pour le contrôle de la connectivité sortante.
Les politiques de réseau sont uniquement disponibles sur le niveau Premium.
Appliquez une politique réseau si votre application :
- Doit limiter l'accès à un ensemble spécifique de domaines externes approuvés
- Empêcher l'exfiltration accidentelle de données
- Doit respecter les normes de sécurité ou de conformité qui restreignent le trafic Internet sortant
Domaines de sortie requis pour le déploiement d'applications
Lorsque vous utilisez des politiques réseau d'égression restreinte, vous devez autoriser des domaines spécifiques pour que les builds d'applications ou le runtime réussissent. Sans ces domaines, les déploiements d'applications échouent car le processus de build ne peut pas download les dépendances ni communiquer avec les services requis.
Les domaines suivants sont requis pour tous les déploiements d’applications Databricks :
Domaine | Objectif |
|---|---|
| Service d'applications et connectivité utilisateur |
| Diffusion d'applications et connectivité utilisateur (AWS GovCloud uniquement) |
| Diffusion d'applications et connectivité utilisateur (AWS GovCloud DoD uniquement) |
| Les download de package Python lors de la création d'applications (requis si votre application utilise |
| Node.js package download lors des builds d'applications (requis si votre application utilise |
:::
:::
De plus, les déploiements Google Cloud pourraient nécessiter ces domaines :
Domaine | Objectif |
|---|---|
| Endpoint de service GCP utilisés par les applications qui se connectent aux Ressources GCP. |
:::
Votre application peut nécessiter des domaines supplémentaires en fonction de vos dépendances spécifiques ou des APIs externes qu’elle appelle. Par exemple, si votre application appelle une API REST tierce, ajoutez le domaine de cette API à la liste d'autorisation.
Dans les environnements Private Service Connect avec sortie restreinte, les entrées manquantes dans la liste blanche de domaines entraînent souvent des échecs de déploiement d'application. Si votre application ne se déploie pas, vérifiez la table système system.access.outbound_network pour les tentatives de connexion refusées afin d'identifier les domaines à ajouter. Voir Vérifier les logs de refus.
Bonnes pratiques pour la configuration des politiques réseau
Suivez ces directives pour éviter les disruptions imprévues et assurez-vous que vos applications peuvent accéder aux ressources requises :
-
Autorisez uniquement les destinations requises. Ajoutez les noms de domaine entièrement qualifiés (FQDN) pour les ressources publiques ou privées dont votre application a besoin. Consultez Domaines de sortie requis pour le déploiement d'applications pour l'ensemble minimal de domaines nécessaires au déploiement.
-
Incluez les repository de packages au besoin. Si votre application installe des packages Python ou Node.js publics, vous devrez peut-être autoriser des domaines tels que
pypi.orgpour Python, ouregistry.npmjs.orgpour Node. Votre application peut nécessiter des domaines supplémentaires ou différents en fonction de vos dépendances spécifiques. Sans ces repositories, les builds d'applications qui s'appuient surrequirements.txtoupackage.jsonpourraient échouer. -
Utilisez le mode de simulation pour valider votre politique réseau. Ce mode simule l'application de la politique sans bloquer le trafic.
-
Passez en revue les tentatives de connexion refusées à l'aide de la table
system.access.outbound_network. Cela vous aide à identifier les domaines que vous pourriez avoir besoin d'autoriser. Voir Vérifier les logs de refus. -
Ajoutez tous les domaines externes requis, tels que les APIs fiables ou les comptes de stockage GCP non enregistrés dans Unity Catalog.
Déployer des applications dans des environnements Private Service Connect
Si votre Workspace utilise la connectivité privée front-end, vous devez effectuer des étapes de configuration supplémentaires pour déployer et utiliser les applications Databricks. Sans cette configuration, les déploiements d'applications pourraient échouer ou les utilisateurs pourraient ne pas pouvoir accéder à l'application.
Configuration DNS
Vous devez configurer le transfert conditionnel DNS pour le domaine databricksapps.com afin que les URL d'application se résolvent en adresses IP privées au lieu d'adresses IP publiques. Sans cette configuration, les utilisateurs derrière un réseau privé ne peuvent pas atteindre les applications déployées.
Créez des enregistrements DNS A ou configurez le transfert conditionnel afin que databricksapps.com se résolve en l'adresse IP de votre Private Service Connect Endpoint. Pour obtenir des instructions détaillées sur la configuration DNS, consultez Configurer Front-end Private Service Connect.
Exigences de sortie
Dans les environnements Private Service Connect avec sortie restreinte, les applications nécessitent une connectivité sortante vers des domaines spécifiques pendant la phase de création et la phase d’exécution. Consultez les domaines de sortie requis pour le déploiement d'applications pour la liste complète des domaines à autoriser.
Pour configurer l’égresse pour les applications dans un environnement Private Service Connect :
- Créer ou mettre à jour une politique de réseau pour autoriser les domaines requis.
- Utilisez d'abord le mode simulation pour valider votre configuration sans bloquer le trafic.
- Passez en revue la table système
system.access.outbound_networkpour toute tentative de connexion refusée lors du déploiement de l'application.
Dépannage des échecs de déploiement de Private Service Connect
Si votre application ne parvient pas à se déployer dans un environnement Private Service Connect :
-
Vérifiez les logs de refus de sortie. Interrogez la table système
system.access.outbound_networkpour les événements de refus récents. Consultez Vérifier les logs de refus.SQLSELECT *
FROM system.access.outbound_network
WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
ORDER BY event_time DESC; -
Vérifiez la résolution DNS. Confirmez que l'URL de votre application se résout en une adresse IP privée, et non en une adresse IP publique. Utilisez
nslookupdepuis votre réseau privé pour vérifier :Bashnslookup <your-app-name>.databricksapps.comPour AWS GovCloud, utilisez
<your-app-name>.aws-gov.databricksapps.us. Pour AWS GovCloud DoD, utilisez<your-app-name>.aws-dod.databricksapps.mil. -
Examinez la configuration de la politique réseau. Vérifiez que les domaines requis figurent dans la liste d'autorisation. Les domaines manquants pour les repositories de packages (
pypi.org,registry.npmjs.org) sont la cause la plus fréquente des échecs de build. -
Redémarrez l'application. Après la mise à jour des politiques réseau, redéployez ou redémarrez l'application afin que les politiques mises à jour prennent effet. Consulter Redémarrer ou redéployer des charges de travail serverless.
Chiffrement et routage du trafic
Databricks Apps utilise des chemins de routage dédiés et plusieurs couches de chiffrement afin de sécuriser les communications réseau et de protéger les données.
Routage du trafic
Le trafic entre le plan de contrôle Databricks, le plan de compute, d'autres Ressources Databricks et les services cloud transite par le réseau mondial du fournisseur de cloud et ne traverse pas l'Internet public.
Le trafic entre les utilisateurs et databricksapps.com (ou databricksapps.us pour AWS GovCloud, ou databricksapps.mil pour AWS GovCloud DoD) pourrait traverser l'internet public selon l'emplacement réseau de l'utilisateur. Pour éviter le routage via l'internet public, configurez la connectivité privée front-end.
Chiffrement en transit
Toutes les communications réseau vers et depuis les applications sont chiffrées :
- Trafic utilisateur : La communication entre les utilisateurs et
databricksapps.com(oudatabricksapps.us/databricksapps.milpour AWS GovCloud) utilise le chiffrement Transport Layer Security (TLS) 1.3. - Trafic du plan de contrôle : la communication entre le plan de contrôle Databricks et le plan de compute utilise le TLS mutuel (mTLS) pour les opérations de gestion, y compris la création, les mises à jour et la suppression d'applications.
Chiffrement au repos
Databricks Apps chiffre les données stockées à l'aide des méthodes suivantes :
- Code d'application : Databricks stocke le code d'application dans des fichiers de workspace et utilise le même chiffrement que les notebooks et autres fichiers de workspace.
- Stockage compute : les applications utilisent des disques éphémères de système d'exploitation hôte chiffrés avec AES-256 et l'implémentation de chiffrement par default du fournisseur cloud.