Aller au contenu principal

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 :

  1. 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.
  2. 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.com afin 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.

remarque

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.

remarque

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

*.databricksapps.com

Service d'applications et connectivité utilisateur

*.databricksapps.us

Diffusion d'applications et connectivité utilisateur (AWS GovCloud uniquement)

*.databricksapps.mil

Diffusion d'applications et connectivité utilisateur (AWS GovCloud DoD uniquement)

pypi.org, files.pythonhosted.org

Les download de package Python lors de la création d'applications (requis si votre application utilise requirements.txt)

registry.npmjs.org

Node.js package download lors des builds d'applications (requis si votre application utilise package.json)

Domaine

Objectif

*.databricksapps.com

Service d'applications et connectivité utilisateur

*.databricksapps.us

Diffusion d'applications et connectivité utilisateur (AWS GovCloud uniquement)

*.databricksapps.mil

Diffusion d'applications et connectivité utilisateur (AWS GovCloud DoD uniquement)

pypi.org, files.pythonhosted.org

Les download de package Python lors de la création d'applications (requis si votre application utilise requirements.txt)

registry.npmjs.org

Node.js package download lors des builds d'applications (requis si votre application utilise package.json)

De plus, les déploiements AWS peuvent nécessiter ces domaines :

Domaine

Objectif

*.amazonaws.com

AWS service Endpoint (S3, STS) utilisés par les applications qui se connectent aux ressources AWS.

Domaine

Objectif

*.amazonaws.com

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.

important

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.org pour Python, ou registry.npmjs.org pour 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 sur requirements.txt ou package.json pourraient é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.

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 :

  1. Créez ou mettez à jour une configuration de la connectivité réseau (NCC) et attachez-la au Workspace hébergeant votre application.
  2. Créer ou mettre à jour une politique de réseau pour autoriser les domaines requis.
  3. Utilisez d'abord le mode simulation pour valider votre configuration sans bloquer le trafic.
  4. Passez en revue la table système system.access.outbound_network pour toute tentative de connexion refusée lors du déploiement de l'application.

Si votre application ne se déploie pas dans un environnement Private Link :

  1. Vérifiez les logs de refus de sortie. Interrogez la table système system.access.outbound_network pour les événements de refus récents. Consultez Vérifier les logs de refus.

    SQL
    SELECT *
    FROM system.access.outbound_network
    WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
    ORDER BY event_time DESC;
  2. 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 nslookup depuis votre réseau privé pour vérifier :

    Bash
    nslookup <your-app-name>.databricksapps.com

    Pour AWS GovCloud, utilisez <your-app-name>.aws-gov.databricksapps.us. Pour AWS GovCloud DoD, utilisez <your-app-name>.aws-dod.databricksapps.mil.

  3. 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.

  4. 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 (ou databricksapps.us / databricksapps.mil pour 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.