Crittografare i dati a riposo usando chiavi gestite dal cliente

Per cifrare i dati a riposo dell'applicazione della tua app Web, è necessario un account Archiviazione di Azure e Azure Key Vault. Questi servizi vengono usati quando si esegue l'app da un pacchetto di distribuzione.

  • Azure Storage fornisce la crittografia dei dati a riposo. È possibile usare chiavi fornite dal sistema o chiavi gestite dal cliente. Azure Storage è dove i dati dell'applicazione sono archiviati quando non sono in esecuzione all'interno di un'applicazione web su Azure.
  • L'esecuzione da un pacchetto di distribuzione è una funzionalità di distribuzione del servizio app. Consente di distribuire il contenuto del sito da un account di archiviazione di Azure usando un URL di firma di accesso condiviso ( SAS).
  • I riferimenti a Key Vault sono una funzionalità di sicurezza del servizio app. Consente di importare segreti in fase di esecuzione come impostazioni dell'applicazione. Usare questa funzionalità per crittografare l'URL della firma di accesso condiviso (SAS) dell'account di archiviazione di Azure.

Configurare la crittografia dei dati inattivi

Creare un account di archiviazione di Azure

Per iniziare, creare un account di archiviazione.

  1. Creare un account di archiviazione di Azure e crittografarlo con chiavi gestite dal cliente. Dopo aver creato l'account di archiviazione, usare Azure Storage Explorer per caricare i file del pacchetto.

  2. Usare Storage Explorer per generare una firma di accesso condiviso per i file del pacchetto.

Annotazioni

Salvare questo SAS URL. Verrà usato in un secondo momento per abilitare l'accesso sicuro del pacchetto di distribuzione in fase di esecuzione.

Configurare l'esecuzione di un pacchetto dall'account di archiviazione

Dopo aver caricato il file nell'archiviazione BLOB e ottenuto un URL di firma di accesso condiviso per il file, configurare l'impostazione dell'applicazione WEBSITE_RUN_FROM_PACKAGE sull'URL della SAS. L'esempio seguente configura questa impostazione usando l'interfaccia della riga di comando di Azure:

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"

L'aggiunta di questa impostazione dell'applicazione comporta il riavvio dell'app Web. Dopo il riavvio dell'app, accedere all'app e assicurarsi che sia stata avviata correttamente con il pacchetto di distribuzione. Se l’applicazione non è stata avviata correttamente, consulta la guida alla risoluzione dei problemi di esecuzione dal pacchetto.

Crittografare l'impostazione dell'applicazione usando i riferimenti a Key Vault

È ora possibile sostituire il valore dell'impostazione dell'applicazione WEBSITE_RUN_FROM_PACKAGE con un riferimento a Key Vault all'URL con codifica SAS. In questo modo l'URL SAS viene crittografato in Key Vault per garantire un ulteriore livello di sicurezza.

  1. Usare il comando seguente az keyvault create per creare un'istanza di Key Vault.

    az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus    
    
  2. Seguire queste istruzioni per concedere alla tua app l'accesso al tuo key vault:

    1. Usare il seguente comando az keyvault secret set per aggiungere l'URL esterno come segreto nel Key Vault:

      az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
      
    2. Usare il comando seguente az webapp config appsettings set per creare l'impostazione dell'applicazione WEBSITE_RUN_FROM_PACKAGE con un valore che è un riferimento all'insieme di credenziali delle chiavi per l'URL esterno.

      az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"    
      

    Il <secret-version> si trova nell'output del comando az keyvault secret set precedente.

L'aggiornamento di questa impostazione dell'applicazione determina il riavvio dell'app Web. Dopo il riavvio dell'app, navigare all'app per assicurarsi che sia stata avviata correttamente con il riferimento all'insieme di credenziali delle chiavi.

Come ruotare il token di accesso

È consigliabile ruotare periodicamente la chiave SAS dell'account di archiviazione. Per assicurarsi che l'app Web non perda l'accesso, è necessario aggiornare il SAS URL in Key Vault.

  1. Ruotare la chiave SAS accedendo all'account di archiviazione nel portale di Azure. In Sicurezza + Rete>chiavi di accesso, selezionare l'icona per ruotare la chiave SAS.

  2. Copiare il nuovo SAS URL e utilizzare il seguente comando per impostare l'URL SAS aggiornato nel Key Vault.

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  3. Aggiorna il riferimento all'insieme di credenziali delle chiavi nelle impostazioni dell'applicazione alla nuova versione del segreto:

    az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"    
    

    Il <secret-version> si trova nell'output del comando az keyvault secret set precedente.

Come revocare l'accesso ai dati dell'app Web

Esistono due metodi per revocare l'accesso dell'app Web all'account di archiviazione.

Ruotare la chiave SAS per l'account di archiviazione di Azure

Se la chiave SAS per l'account di archiviazione viene aggiornata, l'app Web non avrà più accesso all'account di archiviazione, ma continuerà a essere eseguita con l'ultima versione scaricata del file del pacchetto. Riavviare l'app Web per cancellare l'ultima versione scaricata.

Rimuovere l'accesso dell'app Web a Key Vault

È possibile revocare l'accesso dell'app Web ai dati del sito disabilitando l'accesso dell'app Web a Key Vault. Per disabilitare questo accesso, rimuovere l'assegnazione di ruolo o la politica di accesso per l'identità dell'applicazione web. Questa identità è quella creata durante la configurazione della crittografia.

Riassunto

I file delle applicazioni sono ora crittografati a riposo nel tuo account di archiviazione. All'avvio dell'app Web, recupera l'URL SAS dall'insieme di credenziali delle chiavi. Infine, l'app Web carica i file dell'applicazione dall'account di archiviazione.

Se è necessario revocare l'accesso della web app al tuo account di archiviazione, è possibile revocare l'accesso al Key Vault o cambiare le chiavi dell'account di archiviazione. Entrambe queste azioni invalidano l'SAS URL.

Domande frequenti

È previsto un costo aggiuntivo per l'esecuzione dell'app Web dal pacchetto di distribuzione?

Solo il costo associato all'account di archiviazione di Azure ed eventuali addebiti in uscita applicabili.

In che modo l'esecuzione dal pacchetto di distribuzione influisce sull'app Web?

  • L'esecuzione dell'app dal pacchetto di distribuzione rende wwwroot/ di sola lettura. L'app riceve un errore quando tenta di scrivere in questa directory.
  • I formati TAR e gzip non sono supportati.
  • Questa funzionalità non è compatibile con la cache locale.