Condividi tramite


Configurare la rete per le app di Databricks

Databricks Apps supporta un controllo di rete con granularità fine per proteggere e gestire il modo in cui l'app comunica con Internet e le risorse interne. È possibile configurare regole di traffico in ingresso (in ingresso) e in uscita (in uscita) usando una combinazione di elenchi di accesso IP, connettività privata front-end e criteri di rete.

Architettura di rete

Azure Databricks distribuisce le app nel piano di calcolo serverless, in cui ricevono direttamente il traffico. Questo è simile ad altri servizi ottimizzati per la route, ad esempio Model Serving e Vector Search.

Il processo di connessione funziona come segue:

  1. Le richieste iniziali dell'utente a un'app Azure Databricks avviano l'autenticazione OAuth con il piano di controllo per convalidare la sessione e autorizzare l'accesso all'app.
  2. Al termine dell'autenticazione, tutte le richieste successive vengono instradate direttamente al piano di calcolo serverless senza attraversare il piano di controllo.

I criteri di sicurezza di rete configurati per il piano di calcolo serverless si applicano al traffico di Databricks Apps. Sono inclusi gli elenchi di accesso IP e le configurazioni di connettività privata front-end.

Controlli di ingresso

Usare le funzionalità seguenti per limitare l'accesso all'area di lavoro Azure Databricks e alle app dalla rete Internet pubblica.

  • Elenchi di accesso IP: Limitare l'accesso all'area di lavoro e alle app a intervalli IP noti e attendibili abilitando gli elenchi di accesso IP a livello di area di lavoro. È consentito solo il traffico proveniente dagli intervalli IP configurati. Per informazioni dettagliate, vedere Configurare gli elenchi di accesso IP per le aree di lavoro.
  • Connettività privata front-end: Instradare il traffico in ingresso attraverso una connessione Azure Private Link per accedere in modo sicuro alle app tramite la rete virtuale.

    È necessario configurare l'inoltro DNS condizionale per il databricksapps.com dominio per garantire la risoluzione corretta dei nomi tramite la connessione privata. In caso contrario, le query DNS per il dominio dell'app potrebbero risolversi in indirizzi IP pubblici anziché nell'endpoint privato. Per istruzioni sull'installazione, vedere Configurare il collegamento privato in ingresso.

    Gli URL regionali legacy non sono supportati con Le app Databricks perché non supportano OAuth, che è necessario per l'autenticazione dell'app. Per informazioni dettagliate, vedere URL legacy regionale.

Controlli in uscita

Per controllare il traffico in uscita dall'app, creare una configurazione di connettività di rete (NCC) e applicare i criteri di rete all'area di lavoro che ospita l'app.

Configurazioni di connettività di rete

Usare una configurazione di connettività network per connettere in modo sicuro l'app ai servizi di Azure. I Controller di rete (NCC) forniscono ID di subnet stabili che è possibile aggiungere al firewall di un account di archiviazione per consentire esplicitamente l'accesso dalla tua app e da altre risorse di elaborazione serverless.

Per limitare ulteriormente il traffico in uscita verso destinazioni private, configurare gli endpoint privati serverless per le risorse Azure o indirizzare il traffico attraverso un bilanciatore di carico di Azure nella tua rete virtuale.

Criteri di rete

Usare i criteri di rete per applicare restrizioni in uscita per le app Databricks e altri carichi di lavoro serverless. Ciò è utile quando è necessario soddisfare i requisiti aziendali o di conformità per controllare la connettività in uscita.

Annotazioni

I criteri di rete sono disponibili solo nel livello Premium.

Applica un criterio di rete se la tua app:

  • Deve limitare l'accesso a un set specifico di domini esterni approvati
  • Deve impedire l'esfiltrazione accidentale dei dati
  • Deve essere conforme agli standard di sicurezza o conformità che limitano il traffico Internet in uscita

Domini in uscita necessari per la distribuzione delle app

Quando si usano criteri di rete in uscita con restrizioni, è necessario inserire nella allowlist domini specifici affinché le compilazioni o il runtime delle app abbiano successo. Senza questi domini, le distribuzioni di app hanno esito negativo perché il processo di compilazione non può scaricare le dipendenze o comunicare con i servizi necessari.

Per tutte le distribuzioni di app Databricks sono necessari i domini seguenti:

Dominio Scopo
*.databricksapps.com Servizio app e connettività utente
pypi.org, files.pythonhosted.org Download di pacchetti Python durante i build dell'app (obbligatorio se la tua app utilizza requirements.txt)
registry.npmjs.org Scaricamento dei pacchetti Node.js durante la compilazione dell'app (obbligatorio se l'app utilizza package.json)

:::

Inoltre, le distribuzioni di Azure potrebbero richiedere questi domini:

Dominio Scopo
*.blob.core.windows.net Azure Blob Storage endpoint usati dalle app che si connettono all'archiviazione di Azure
*.dfs.core.windows.net Azure Data Lake Storage endpoint usati dalle app che si connettono ad ADLS

:::

:::

L'app potrebbe richiedere domini aggiuntivi a seconda delle dipendenze specifiche o delle API esterne chiamate. Ad esempio, se l'app chiama un'API REST di terze parti, aggiungere il dominio dell'API all'elenco consenti.

Importante

Negli ambienti Private Link con uscita limitata, le voci consentite del dominio mancanti causano in genere errori di distribuzione delle app. Se l'app non riesce a essere distribuita, controllare la tabella di sistema system.access.outbound_network per i tentativi di connessione negati per identificare quali domini aggiungere. Consulta Controllare i log di rifiuto.

Procedure consigliate per la configurazione dei criteri di rete

Seguire queste linee guida per evitare interruzioni impreviste e assicurarsi che le app possano accedere alle risorse necessarie:

  • Consenti solo le destinazioni obbligatorie. Aggiungere nomi di dominio completi (FQDN) per le risorse pubbliche o private necessarie per l'app. Vedi Domini in uscita necessari per la distribuzione delle app per il set minimo di domini necessari per la distribuzione.
  • Includere i repository di pacchetti in base alle esigenze. Se l'app installa pacchetti Python o Node.js pubblici, potrebbe essere necessario consentire domini come pypi.org per Python o registry.npmjs.org per Node. L'applicazione potrebbe richiedere domini aggiuntivi o diversi a seconda delle dipendenze specifiche. Senza questi repository, le compilazioni di app basate su requirements.txt o package.json potrebbero non riuscire.
  • Usare la modalità di esecuzione a secco per convalidare i criteri di rete. Questa modalità simula l'imposizione dei criteri senza bloccare il traffico.
  • Esaminare i tentativi di connessione negati usando la system.access.outbound_network tabella . Ciò consente di identificare i domini che potrebbe essere necessario consentire. Consulta Controllare i log di rifiuto.
  • Aggiungere eventuali domini esterni necessari, ad esempio API attendibili o account di archiviazione Azure non registrati nel catalogo Unity.

Se l'area di lavoro usa la connettività privata front-end, è necessario completare passaggi di configurazione aggiuntivi per distribuire e usare le app Databricks. Senza questa configurazione, le distribuzioni di app potrebbero non riuscire o gli utenti potrebbero non riuscire a raggiungere l'app.

Configurazione del DNS

È necessario configurare l'inoltro DNS condizionale per il databricksapps.com dominio in modo che gli URL dell'app si risolvono in indirizzi IP privati anziché indirizzi IP pubblici. Senza questa configurazione, gli utenti dietro una rete privata non possono raggiungere le app distribuite.

Aggiungere regole di inoltro condizionale per i domini seguenti al server Azure DNS:

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

Verificare che la rete virtuale sia collegata alla zona Azure Private DNS. Per istruzioni dettagliate sulla configurazione dns, vedere Configurazione DNS personalizzata.

Requisiti di egress

Negli ambienti Private Link con uscita limitata, le app richiedono la connettività in uscita a domini specifici sia in fase di compilazione che in fase di esecuzione. Vedi Domini in uscita necessari per la distribuzione di app per l'elenco completo dei domini da consentire.

Per configurare l'uscita per le app in un ambiente Private Link:

  1. Creare o aggiornare una configurazione di connettività di rete (NCC) e collegarla all'area di lavoro che ospita l'app.
  2. Creare o aggiornare un criterio di rete per inserire nella allowlist i domini necessari.
  3. Usare prima la modalità di esecuzione a secco per convalidare la configurazione senza bloccare il traffico.
  4. Esaminare la tabella di sistema per eventuali tentativi di connessione negati durante la system.access.outbound_network distribuzione dell'app.

Se l'app non riesce a eseguire la distribuzione in un ambiente Private Link:

  1. Controllare i registri di negazione dell'uscita. Eseguire una query sulla tabella di sistema system.access.outbound_network per i recenti eventi di negazione. Consulta Controllare i log di rifiuto.

    SELECT *
    FROM system.access.outbound_network
    WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
    ORDER BY event_time DESC;
    
  2. Verificare la risoluzione DNS. Verificare che l'URL dell'app venga risolto in un indirizzo IP privato, non in un indirizzo IP pubblico. Usare nslookup dall'interno della rete privata per verificare:

    nslookup <your-app-name>.databricksapps.com
    
  3. Esaminare la configurazione dei criteri di rete. Verificare che i domini necessari siano inclusi nell'elenco consenti. I domini mancanti per i repository di pacchetti (pypi.org, registry.npmjs.org) sono la causa più comune degli errori di compilazione.

  4. Riavviare l'app. Dopo l'aggiornamento dei criteri di rete, ridistribuire o riavviare l'app in modo che i criteri aggiornati vengano applicati. Vedere Riavviare o ridistribuire carichi di lavoro serverless.

Crittografia e routing del traffico

Databricks Apps usa percorsi di routing dedicati e più livelli di crittografia per proteggere le comunicazioni di rete e proteggere i dati.

instradamento del traffico

Il traffico tra il piano di controllo Azure Databricks, il piano di calcolo, altre risorse Azure Databricks e i servizi cloud passano attraverso la rete globale del provider di servizi cloud e non attraversano la rete Internet pubblica.

Il traffico tra gli utenti e databricksapps.com potrebbe attraversare la rete Internet pubblica a seconda del percorso di rete dell'utente. Per evitare il routing Internet pubblico, configurare la connettività privata del front-end.

Crittografia durante il transito

Tutte le comunicazioni di rete da e verso le app vengono crittografate:

  • Traffico utente: La comunicazione tra utenti e databricksapps.com usa la crittografia TLS (Transport Layer Security) 1.3.
  • Traffico del piano di controllo: La comunicazione tra il piano di controllo e il piano di calcolo di Azure Databricks utilizza il TLS reciproco (mTLS) per le operazioni di gestione, inclusa la creazione, l'aggiornamento e l'eliminazione delle app.

Crittografia a riposo

Databricks Apps crittografa i dati archiviati usando i metodi seguenti:

  • Codice applicazione: Azure Databricks archivia il codice dell'app nei file dell'area di lavoro e usa la stessa crittografia dei notebook e di altri file dell'area di lavoro.
  • Archiviazione di calcolo: Le app usano dischi del sistema operativo host temporanei crittografati con AES-256 e l'implementazione di crittografia predefinita del provider di servizi cloud.