Proteggere la distribuzione del servizio app di Azure

Il servizio app di Azure offre un ambiente PaaS (Platform-as-a-Service) che consente di compilare, distribuire e ridimensionare app Web, back-end di app per dispositivi mobili, API RESTful e app per le funzioni. Quando si distribuisce questo servizio, è importante seguire le procedure consigliate per la sicurezza per proteggere applicazioni, dati e infrastruttura.

Questo articolo fornisce indicazioni su come proteggere al meglio la distribuzione del servizio app di Azure.

Il servizio app di Azure protegge e rafforza attivamente i componenti della piattaforma, tra cui macchine virtuali di Azure, archiviazione, connessioni di rete, framework Web e funzionalità di gestione e integrazione. Il servizio app viene sottoposto a controlli di conformità continui e rigorosi per garantire che:

  • Ogni app è separata da altre app e risorse di Azure.
  • Aggiornamenti regolari delle macchine virtuali e del software di runtime risolendono le vulnerabilità appena individuate.
  • La comunicazione di segreti e stringhe di connessione tra app e altre risorse di Azure come il database SQL di Azure si verifica solo in Azure, senza superare i limiti di rete. I segreti archiviati vengono sempre crittografati.
  • Tutte le comunicazioni tramite le funzionalità di connettività del servizio app, ad esempio la connessione ibrida , vengono crittografate.
  • Tutte le connessioni tramite strumenti di gestione remota come Azure PowerShell, l'interfaccia della riga di comando di Azure, gli SDK di Azure e le API REST vengono crittografate.
  • La gestione continua delle minacce protegge l'infrastruttura e la piattaforma da malware, attacchi DDoS (Distributed Denial of Service) e attacchi man-in-the-middle e altre minacce.

Per altre informazioni sulla sicurezza dell'infrastruttura e della piattaforma in Azure, vedere il Centro protezione di Azure.

Le raccomandazioni sulla sicurezza in questo articolo implementano i principi Zero Trust: "Verificare in modo esplicito", "Usare l'accesso con privilegi minimi" e "Presupporre violazione". Per indicazioni complete su Zero Trust, vedere Zero Trust Guidance Center.

Sicurezza specifica del servizio

Servizio app di Azure presenta considerazioni di sicurezza uniche che dovresti considerare per garantire la sicurezza complessiva delle tue applicazioni web.

  • Disabilitare l'autenticazione di base: disabilitare l'autenticazione basata su nome utente e password di base per gli endpoint FTP e SCM a favore dell'autenticazione basata su ID di Microsoft Entra, che fornisce l'autenticazione basata su token OAuth 2.0 con sicurezza avanzata. Per ulteriori informazioni, vedi Disabilita l'autenticazione di base nelle implementazioni di Servizio app di Azure.

  • Distribuzioni FTP/FTPS sicure: disabilitare l'accesso FTP o applicare la modalità solo FTPS quando si usa FTP per le distribuzioni per impedire la trasmissione di credenziali e contenuto in testo non crittografato. Per maggiori informazioni, consulta Distribuire la tua app su Servizio app di Azure usando FTP/S.

  • Ottenere l'isolamento di rete completo: usare l'ambiente del servizio app per eseguire le app all'interno di un ambiente del servizio app dedicato nella propria istanza di rete virtuale di Azure. Questa configurazione offre un isolamento completo della rete dall'infrastruttura condivisa con endpoint pubblici dedicati, opzioni di bilanciamento del carico interno (ILB) per l'accesso solo interno e la possibilità di utilizzare un ILB dietro un firewall per applicazioni web per la protezione a livello enterprise. Per ulteriori informazioni, vedi Introduzione agli ambienti Servizio app di Azure.

  • Implementa la protezione DDoS: Implementa Frontdoor di Azure con un Web application firewall (WAF) davanti alla tua app App Service per assorbire e filtrare gli attacchi DDoS a livello di rete e applicazione prima che raggiungano la tua app. Per maggiori informazioni, vedi Frontdoor di Azure e protezione DDoS.

Sicurezza della rete

Il servizio app supporta molte funzionalità di sicurezza di rete per bloccare le applicazioni e impedire l'accesso non autorizzato.

  • Configurare gli endpoint privati: eliminare l'esposizione a Internet pubblico instradando il traffico al Servizio App attraverso la tua rete virtuale utilizzando collegamento privato di Azure, garantendo la connettività sicura per i client nelle reti private. Per ulteriori informazioni, vedere Usare gli endpoint privati per Servizio app di Azure.

  • Implementare l'integrazione della rete virtuale: proteggere il traffico in uscita consentendo all'app di accedere alle risorse in o tramite una rete virtuale di Azure mantenendo l'isolamento dalla rete Internet pubblica. Per altre informazioni, vedere Integrare l'app in una rete virtuale di Azure.

  • Configurare le restrizioni di accesso IP: limitare l'accesso all'app definendo un elenco di indirizzi IP e subnet consentiti che possono accedere all'applicazione, bloccando tutto il traffico. È possibile definire singoli indirizzi IP o intervalli definiti dalle subnet mask e configurare restrizioni IP dinamiche tramite web.config file nelle app di Windows. Per altre informazioni, vedere Configurare le restrizioni di accesso del servizio app di Azure.

  • Configurare le restrizioni dell'endpoint di servizio: bloccare l'accesso in ingresso all'app da subnet specifiche nelle reti virtuali usando gli endpoint di servizio, che interagiscono con le restrizioni di accesso IP per fornire filtri a livello di rete. Per ulteriori informazioni, vedere Restrizioni di accesso al servizio Azure App.

  • Usare Web application firewall: Migliorare la protezione contro le vulnerabilità e gli attacchi web comuni implementando Frontdoor di Azure o Application Gateway con capacità del Web application firewall davanti al vostro App Service. Per altre informazioni, vedere Web application firewall di Azure su gateway applicazione di Azure.

Gestione delle identità e degli accessi

La gestione corretta delle identità e dei controlli di accesso è essenziale per proteggere le distribuzioni del servizio app di Azure contro l'utilizzo non autorizzato e il potenziale furto di credenziali.

  • Abilitare le identità gestite per le richieste in uscita: eseguire l'autenticazione ai servizi di Azure in modo sicuro dall'app senza archiviare le credenziali nel codice o nella configurazione usando identità gestite, eliminando la necessità di gestire le entità servizio e le stringhe di connessione. Le identità gestite forniscono un'identità gestita automaticamente in Microsoft Entra ID per l'app da usare quando si effettuano richieste in uscita ad altri servizi di Azure, ad esempio il database SQL di Azure, Azure Key Vault e Archiviazione di Azure. Il servizio app supporta identità gestite assegnate dal sistema e assegnate dall'utente. Per altre informazioni, vedere Usare le identità gestite per il servizio app e Funzioni di Azure.

  • Configurare l'autenticazione e l'autorizzazione: implementare l'autenticazione/autorizzazione del servizio app per proteggere l'applicazione con l'ID Microsoft Entra o altri provider di identità, impedendo l'accesso non autorizzato senza scrivere codice di autenticazione personalizzato. Il modulo di autenticazione integrato gestisce le richieste web prima di passarle al codice applicativo e supporta diversi provider tra cui Microsoft Entra ID, account Microsoft, Facebook, Google e X. Per ulteriori informazioni, vedi Autenticazione e autorizzazione in Servizio app di Azure.

  • Implementare il controllo degli accessi in base al ruolo per le operazioni di gestione: controllare chi può gestire e configurare le risorse del servizio app (piano di gestione) assegnando le autorizzazioni minime necessarie per il controllo degli accessi in base al ruolo di Azure agli utenti e alle entità servizio seguendo il principio dei privilegi minimi. Questo controlla l'accesso amministrativo alle operazioni come la creazione di app, la modifica delle impostazioni di configurazione e la gestione delle distribuzioni, separatamente dall'autenticazione a livello applicativo (Easy Auth) o dall'autenticazione app-to-resource (identità gestite). Per maggiori informazioni, consulta ruoli integrati Azure per web e mobile.

  • Implementare l'autenticazione on-behalf-of: permettere l'accesso alle risorse remote a nome degli utenti usando Microsoft Entra ID come provider di autenticazione. L'app del Servizio App può eseguire l'accesso delegato a servizi come Microsoft Graph o le app API remote del Servizio App. Per altre informazioni, vedi Autenticazione e autorizzazione degli utenti end-to-end in Servizio app di Azure.

  • Abilitare l'autenticazione TLS reciproca: richiedere certificati client per una maggiore sicurezza quando l'applicazione deve verificare l'identità client, in particolare per scenari B2B o applicazioni interne. Per ulteriori informazioni, consulta Configura l'autenticazione reciproca TLS per Servizio app di Azure.

Protezione dei dati

La protezione dei dati in transito e inattivi è fondamentale per mantenere la riservatezza e l'integrità delle applicazioni e dei relativi dati.

  • Imponi HTTPS: reindirizzare tutto il traffico HTTP a HTTPS abilitando la modalità solo HTTPS, assicurandosi che tutte le comunicazioni tra client e l'app siano crittografate. Il redirect solo HTTPS non è attivato di default, quindi abilitalo esplicitamente; nota che il nome <app_name>.azurewebsites.net di dominio predefinito della tua app è già accessibile tramite HTTPS. Per maggiori informazioni, consulta Configura impostazioni generali.

  • Configurare la versione TLS: usare protocolli TLS moderni configurando la versione minima di TLS alla versione 1.2 o successiva e disabilitando protocolli non aggiornati e non sicuri per evitare potenziali vulnerabilità. Il servizio app supporta TLS 1.3 (versione più recente), TLS 1.2 (minimo predefinito) e TLS 1.1/1.0 (solo per compatibilità con le versioni precedenti). Configurare la versione minima di TLS sia per l'app Web che per il sito SCM. Per maggiori informazioni, consulta Configura impostazioni generali.

  • Gestire i certificati TLS/SSL: proteggere i domini personalizzati usando certificati TLS/SSL configurati correttamente per stabilire connessioni attendibili. Il servizio app supporta più tipi di certificato: certificati gestiti del servizio app gratuiti, certificati del servizio app, certificati di terze parti e certificati importati da Azure Key Vault. Se si configura un dominio personalizzato, proteggerlo con un certificato TLS/SSL in modo che i browser possano stabilire connessioni HTTPS sicure. Per altre informazioni, vedere Aggiungere e gestire i certificati TLS/SSL in Servizio app di Azure.

  • Archiviare i segreti in Key Vault: proteggere i valori di configurazione sensibili, ad esempio le credenziali del database, i token API e le chiavi private archiviandoli in Azure Key Vault e accedendoli usando identità gestite, anziché archiviarli nelle impostazioni dell'applicazione o nel codice. L'app di App Service può accedere in modo sicuro a Key Vault usando l'autenticazione dell'identità gestita. Per ulteriori informazioni, vedere Usare i riferimenti a Key Vault per App Service e Funzioni di Azure.

  • Evita di codificare i segreti nelle impostazioni dell'applicazione: Non memorizzare segreti in codice o file di configurazione. App Service memorizza le impostazioni dell'app e le stringhe di connessione criptate a riposo e le decripta poco prima di iniettarle nella memoria dei processi dell'app, ma per i segreti sensibili preferisci i riferimenti Key Vault così che i segreti siano gestiti centralmente e mai memorizzati nella configurazione dell'app. Accedere a questi valori come variabili di ambiente usando modelli standard per il linguaggio di programmazione. Per altre informazioni, vedere Configurare le impostazioni delle app.

  • Connessioni remote sicure: usare sempre connessioni crittografate quando si accede alle risorse remote, anche se la risorsa back-end consente connessioni non crittografate. Per le risorse di Azure come il database SQL di Azure e Archiviazione di Azure, le connessioni rimangono all'interno di Azure e non superano i limiti di rete. Per le risorse di rete virtuale, usare l'integrazione della rete virtuale con VPN da punto a sito. Per le risorse locali, usare connessioni ibride con TLS 1.2 o l'integrazione della rete virtuale con VPN da sito a sito. Assicurarsi che i servizi di Azure back-end consentano solo il set più piccolo possibile di indirizzi IP dall'app. Per maggiori informazioni, vedi Trova gli IP in uscita.

Registrazione e monitoraggio

L'implementazione di registrazione e monitoraggio complete è essenziale per rilevare potenziali minacce alla sicurezza e risolvere i problemi relativi alla distribuzione del servizio app di Azure.

  • Abilitare la registrazione diagnostica: configurare i log di diagnostica del servizio app di Azure per tenere traccia degli errori dell'applicazione, dei log del server Web, delle tracce delle richieste non riuscite e dei messaggi di errore dettagliati per identificare i problemi di sicurezza e risolvere i problemi. Per ulteriori informazioni, consulta Abilita la registrazione diagnostica per le app in Servizio app di Azure.

  • Integrazione con Monitoraggio di Azure: configurare Monitoraggio di Azure per raccogliere e analizzare log e metriche dal servizio app, consentendo monitoraggio e avvisi completi per gli eventi di sicurezza e i problemi di prestazioni. Per maggiori informazioni, vedi Monitorare le app in Servizio app di Azure.

  • Configurare Application Insights: implementare Application Insights per ottenere informazioni dettagliate sulle prestazioni dell'applicazione, sui modelli di utilizzo e sui potenziali problemi di sicurezza, con funzionalità di monitoraggio e analisi in tempo reale. Per altre informazioni, vedere Monitorare le prestazioni del servizio app Azure.

  • Configurare gli avvisi di sicurezza: creare avvisi personalizzati per notificare modelli di utilizzo anomali, potenziali violazioni della sicurezza o interruzioni del servizio che interessano le risorse del servizio app. Per altre informazioni, vedere Creare, visualizzare e gestire gli avvisi delle metriche con Monitoraggio di Azure.

  • Abilitare i controlli di integrità: configurare i controlli di integrità per monitorare lo stato operativo dell'applicazione e correggere automaticamente i problemi quando possibile. Per altre informazioni, vedere Monitorare le istanze di App Service usando il controllo di integrità.

Conformità e governance

Stabilire una governance corretta e garantire la conformità agli standard pertinenti è fondamentale per il funzionamento sicuro delle applicazioni del servizio app di Azure.

  • Implementare Criteri di Azure: applicare standard di sicurezza a livello di organizzazione per le distribuzioni del servizio app creando e assegnando definizioni di Criteri di Azure che controllano e applicano i requisiti di conformità. Per maggiori informazioni, consulta Criteri di Azure Regulatory Compliance controls for Servizio app di Azure.

  • Rivedi le raccomandazioni di sicurezza: valuta regolarmente la tua postura di sicurezza dei servizi App utilizzando Microsoft Defender per il cloud per identificare e correggere vulnerabilità di sicurezza e configurazioni errate. Per maggiori informazioni, consulta Proteggi le tue app web e API di Servizio app di Azure.

  • Effettua valutazioni di sicurezza: Esegui regolarmente valutazioni di sicurezza e test di penetrazione delle tue applicazioni App Service per convalidare le restrizioni di accesso, le impostazioni TLS e la configurazione Easy Auth. Segui le regole di ingaggio dei test di penetrazione cloud di Microsoft. Per ulteriori informazioni, vedi Test di penetrazione.

  • Mantenere la conformità normativa: Assegnare iniziative integrate di policy di conformità normativa (come PCI DSS, HIPAA/HITRUST o ISO 27001) che includano i controlli App Service per verificare le tue app rispetto ai requisiti del tuo settore e regione, in particolare per quanto riguarda la protezione dei dati e la privacy. Per altre informazioni, vedere Conformità alle normative in Criteri di Azure.

  • Implementare pratiche DevOps sicure: Stabilire pipeline sicure di CI/CD per il deployment su App Service: utilizzare slot di distribuzione per la validazione a stadi, disabilitare l'autenticazione di base sugli endpoint SCM/FTP a favore di un deployment basato su identità gestita e aggiungere scansioni di codice e controlli di dipendenza. Per maggiori informazioni, consulta le migliori pratiche di deployment.

Backup e ripristino

L'implementazione di meccanismi di backup e ripristino affidabili è essenziale per garantire la continuità aziendale e la protezione dei dati nelle distribuzioni del servizio app di Azure.

  • Abilitare i backup automatizzati: configurare i backup pianificati per le applicazioni del servizio app per assicurarsi di poter ripristinare le applicazioni e i dati in caso di eliminazione accidentale, danneggiamento o altri errori. Per maggiori informazioni, consulta Backup e ripristina la tua app in Servizio app di Azure.

  • Configurare la conservazione dei backup: impostare i periodi di conservazione appropriati per i backup in base ai requisiti aziendali e alle esigenze di conformità, assicurando che i dati critici vengano conservati per la durata richiesta. Per maggiori informazioni, consulta Backup e ripristina la tua app in Servizio app di Azure.

  • Implementa implementazioni multiregione: distribuisci le tue applicazioni critiche in più regioni per garantire alta disponibilità e capacità di disaster recovery in caso di interruzioni regionali. Per maggiori informazioni, vedi Tutorial: Crea un'app multi-regione altamente disponibile in App Service.

  • Test di ripristino del backup: eseguire test regolari sul processo di ripristino del backup per assicurarsi che i backup siano validi e possano essere ripristinati correttamente quando necessario, verificando sia la funzionalità dell'applicazione che l'integrità dei dati. Per maggiori informazioni, vedi Ripristina un'app da un backup.

  • Procedure di ripristino dei documenti: creare e gestire documentazione completa per le procedure di ripristino, garantendo una risposta rapida ed efficace durante interruzioni o emergenze del servizio. Per altre informazioni, vedere Reliability in Servizio app di Azure.