However in the case of a simple web app I don't see the benefit of using environment variables which can be configured in the portal.
Non ho usato Azure Key Vault, ma sembra che l'applicazione client non sia mai vede effettivamente la chiave master :
When a SaaS application needs to perform cryptographic operations by
using their customers’ keys, Key Vault does this on behalf of the
application. The application does not see the customers’ keys.
Se l'applicazione è compromessa, in entrambi gli scenari l'attaccante può decifrare quello che vuole. Tuttavia, se l'applicazione (e quindi l'utente malintenzionato) non ha mai accesso diretto alle chiavi, una volta che l'autore dell'attacco ha perso l'accesso, non è più possibile decodificare ulteriori dati. Questo protegge i dati futuri e i dati che l'autore dell'attacco non è stato in grado di decodificare prima di perdere l'accesso a causa di una violazione.
Se la chiave principale era semplicemente in una variabile di ambiente e l'utente malintenzionato lo ha compromesso, anche se hai revocato completamente il loro accesso, potevano continuare a decrittografare i dati originariamente rubati.
Un ulteriore vantaggio è che presumibilmente ogni operazione di decrittografia viene registrata, in modo da poter controllare più facilmente l'ambito dei dati che sono stati compromessi. Tuttavia, se l'utente malintenzionato avesse accesso diretto alla chiave, potrebbe decrittografarlo offline e non sapresti mai cosa è stato e non è stato compromesso.