Introduction
Contoso Retail utilizza Funzioni di Azure per supportare l'elaborazione degli ordini basata su eventi e la sincronizzazione dell'inventario. Si tratta di funzioni attivate da HTTP che i sistemi partner esterni chiamano direttamente, attivati da webhook in ingresso ogni volta che un acquisto viene confermato o un livello azionario cambia. Una verifica della sicurezza ha rilevato quattro lacune di controllo che non sono state risolte dopo la distribuzione iniziale. Diverse funzioni di produzione accettano richieste non autenticate. Qualsiasi chiamante con l'URL può attivarli. Le stringhe di connessione di Cosmos DB vengono archiviate come impostazioni dell'applicazione in testo normale, visibili a chiunque abbia accesso in lettura alla schermata di configurazione del servizio app. Non esistono restrizioni di rete in ingresso, quindi gli endpoint della funzione accettano il traffico da qualsiasi posizione su Internet. I flussi di lavoro di integrazione di Logic Apps presentano una quarta lacuna: le risorse di connessione condivise tra più app contengono credenziali codificate in modo statico che non sono assegnate a nessun responsabile e che nessuno provvede a ruotare.
Nessuna di queste lacune genera un errore immediato. Un trigger HTTP non autenticato continua a funzionare. Una stringa di connessione in chiaro continua ad autenticarsi al database. L'esposizione è invisibile all'utente finché non viene rubata una credenziale, una funzione viene abusata o un'indagine sulle violazioni rivela che ogni endpoint è stato aperto a Internet tutto il tempo.
I carichi di lavoro serverless richiedono lo stesso modello di sicurezza a tre livelli applicato a qualsiasi superficie dell'API. Il primo livello controlla chi può richiamare la funzione, ovvero l'autenticazione e l'autorizzazione. Il secondo livello controlla il funzionamento della funzione quando effettua chiamate downstream, ovvero identità gestita. Il terzo livello controlla cosa può raggiungere l'endpoint della funzione al primo posto, ovvero l'isolamento della rete.
Questo modulo funziona in ogni livello sia per Funzioni di Azure che per App per la logica di Azure. Per le app per le funzioni, si configura l'autenticazione di Servizio app di Azure con Microsoft Entra ID, si assegna un'identità gestita per eliminare le stringhe di connessione e si applicano restrizioni IP in ingresso, endpoint privati, integrazione con la rete virtuale e riferimenti a Key Vault. Per le App per la logica, si applicano gli stessi modelli relativi a identità gestita e rete, si sceglie il piano di hosting appropriato in base ai requisiti relativi alle funzionalità di rete e si proteggono i dati sensibili esposti attraverso la cronologia di esecuzione.
Al termine di questo modulo, è possibile configurare l'autenticazione, l'identità gestita e l'isolamento della rete per le app per le funzioni Azure e le app per la logica in un comportamento di sicurezza di produzione.
Obiettivi di apprendimento
Al termine di questo modulo si sarà in grado di:
- Configurare i controlli di autenticazione e autorizzazione per le app per le funzioni di Azure
- Implementare i controlli di accesso alla rete per le app per le funzioni, tra cui l'integrazione della rete virtuale e gli endpoint privati
- Applicare l'identità gestita, la sicurezza dei connettori e l'isolamento di rete per le App per la logica di Azure