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 d’installation, consultez Configurer PrivateLink entrant pour les Workspaces.
Pour Databricks sur AWS GovCloud, utilisez databricksapps.us au lieu de databricksapps.com. Pour AWS GovCloud DoD, utilisez databricksapps.mil. Voir Databricks sur AWS GovCloud pour plus de détails sur Databricks sur AWS GovCloud.
:::
Contrôles de sortie
Pour contrôler le trafic sortant de votre application, créez une configuration de connectivité réseau (NCC) et appliquez des politiques réseau au Workspace hébergeant l'application.
Configurations de la connectivité réseau
Utilisez une configuration de la connectivité réseau pour attribuer des adresses IP de sortie stables et contrôler la façon dont votre application se connecte aux services externes. Les NCC fournissent des adresses IP publiques fixes que vous pouvez ajouter aux listes blanches de systèmes externes pour autoriser en toute sécurité le trafic Databricks.
Pour restreindre la sortie vers des destinations privées telles qu’un compartiment S3 ou un équilibreur de charge réseau (NLB), configurez les connexions PrivateLink dans le cadre de votre configuration NCC.
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 réseau sont uniquement disponibles sur le niveau Enterprise.
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 AWS peuvent nécessiter ces domaines :
Domaine | Objectif |
|---|---|
| AWS service Endpoint (S3, STS) utilisés par les applications qui se connectent aux ressources AWS. |
:::
:::
:::
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 Link avec une égression restreinte, l'absence d'entrées dans la liste d'autorisation de domaine entraîne fréquemment des échecs de déploiement d'applications. 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 des APIs de confiance ou des Endpoints de service AWS comme S3 ou STS.
Déployer des applications dans des environnements Private Link
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.
Ajoutez une règle de transfert DNS conditionnel pour databricksapps.com qui transmet les requêtes au résolveur DNS de votre VPC. Ceci garantit que les URL d'applications se résolvent via votre connexion PrivateLink. Pour des instructions détaillées sur la configuration DNS, consultez Configurer PrivateLink entrant pour les Workspace.
Pour Databricks sur AWS GovCloud, transférez databricksapps.us au lieu de databricksapps.com. Pour AWS GovCloud DoD, transférez databricksapps.mil. Pour plus de détails sur la configuration DNS, consultez Configurer DNS pour Private Link entrant AWS.
Exigences de sortie
Dans les environnements Private Link avec une sortie restreinte, les applications nécessitent une connectivité sortante vers des domaines spécifiques pendant le temps de création et le temps 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 la sortie pour les applications dans un environnement Private Link :
- Créez ou mettez à jour une configuration de la connectivité réseau (NCC) et attachez-la au Workspace hébergeant votre application.
- 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 Link
Si votre application ne se déploie pas dans un environnement Private Link :
-
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.