Crittografare i dati inattivi dell'applicazione usando chiavi gestite dal cliente
La crittografia dei dati dell'applicazione dell'app per le funzioni inattivi richiede un account di archiviazione di Azure e un'Key Vault di Azure. Questi servizi vengono usati quando si esegue l'app da un pacchetto di distribuzione.
- Archiviazione di Azure fornisce la crittografia dei dati inattivi. È possibile usare chiavi fornite dal sistema o chiavi gestite dal cliente. Qui vengono archiviati i dati dell'applicazione quando non sono in esecuzione in un'app per le funzioni in Azure.
- L'esecuzione da un pacchetto di distribuzione è una funzionalità di distribuzione di servizio app. Consente di distribuire il contenuto del sito da un account di archiviazione di Azure usando un URL di firma di accesso condiviso.
- Key Vault riferimenti sono una funzionalità di sicurezza di servizio app. Consente di importare segreti in fase di esecuzione come impostazioni dell'applicazione. Usare questa opzione per crittografare l'URL di firma di accesso condiviso dell'account di archiviazione di Azure.
Configurare la crittografia dei dati inattivi
Creare un account di archiviazione di Azure
Creare prima di tutto un account di archiviazione di Azure e crittografarlo con le chiavi gestite dal cliente. Dopo aver creato l'account di archiviazione, usare il Azure Storage Explorer per caricare i file del pacchetto.
Usare quindi il Storage Explorer per generare una firma di accesso condiviso.
Nota
Salvare questo URL di firma di accesso condiviso, che verrà usato in un secondo momento per abilitare l'accesso sicuro del pacchetto di distribuzione in fase di esecuzione.
Configurare l'esecuzione da un pacchetto dall'account di archiviazione
Dopo aver caricato il file nell'archivio BLOB e avere un URL di firma di accesso condiviso per il file, impostare l'impostazione dell'applicazione WEBSITE_RUN_FROM_PACKAGE
sull'URL di firma di accesso condiviso. L'esempio seguente esegue questa operazione 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 causa il riavvio dell'app per le funzioni. Dopo il riavvio dell'app, selezionarla e assicurarsi che l'app sia stata avviata correttamente usando il pacchetto di distribuzione. Se l'applicazione non è stata avviata correttamente, vedere la guida alla risoluzione dei problemi esegui dal pacchetto.
Crittografare l'impostazione dell'applicazione usando riferimenti Key Vault
È ora possibile sostituire il valore dell'impostazione dell'applicazione WEBSITE_RUN_FROM_PACKAGE
con un riferimento Key Vault all'URL con codifica SAS. In questo modo l'URL di firma di accesso condiviso viene crittografato in Key Vault, che offre un ulteriore livello di sicurezza.
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
Seguire queste istruzioni per concedere all'app l'accesso all'insieme di credenziali delle chiavi:
Usare il comando seguente
az keyvault secret set
per aggiungere l'URL esterno come segreto nell'insieme di credenziali delle chiavi:az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Usare il comando seguente
az webapp config appsettings set
per creare l'impostazione dell'applicazioneWEBSITE_RUN_FROM_PACKAGE
con il valore come riferimento Key Vault all'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>"
L'oggetto
<secret-version>
sarà nell'output del comando precedenteaz keyvault secret set
.
L'aggiornamento di questa impostazione dell'applicazione causa il riavvio dell'app per le funzioni. Dopo che l'app è stata riavviata, selezionarla per assicurarsi che sia stata avviata correttamente usando il riferimento Key Vault.
Come ruotare il token di accesso
È consigliabile ruotare periodicamente la chiave di firma di accesso condiviso dell'account di archiviazione. Per assicurarsi che l'app per le funzioni non perda inavvertitamente l'accesso, è necessario aggiornare anche l'URL di firma di accesso condiviso in Key Vault.
Ruotare la chiave di firma di accesso condiviso passando all'account di archiviazione nel portale di Azure. In Impostazioni Chiavi>di accesso selezionare l'icona per ruotare la chiave di firma di accesso condiviso.
Copiare il nuovo URL di firma di accesso condiviso e usare il comando seguente per impostare l'URL di firma di accesso condiviso aggiornato nell'insieme di credenziali delle chiavi:
az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Aggiornare il riferimento all'insieme di credenziali delle chiavi nell'impostazione 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>"
L'oggetto
<secret-version>
sarà nell'output del comando precedenteaz keyvault secret set
.
Come revocare l'accesso ai dati dell'app per le funzioni
Esistono due metodi per revocare l'accesso dell'app per le funzioni all'account di archiviazione.
Ruotare la chiave di firma di accesso condiviso per l'account di archiviazione di Azure
Se la chiave di firma di accesso condiviso per l'account di archiviazione viene ruotata, l'app per le funzioni 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 per le funzioni per cancellare l'ultima versione scaricata.
Rimuovere l'accesso dell'app per le funzioni a Key Vault
È possibile revocare l'accesso dell'app per le funzioni ai dati del sito disabilitando l'accesso dell'app per le funzioni a Key Vault. A tale scopo, rimuovere i criteri di accesso per l'identità dell'app per le funzioni. Si tratta della stessa identità creata in precedenza durante la configurazione dei riferimenti all'insieme di credenziali delle chiavi.
Riepilogo
I file dell'applicazione vengono ora crittografati inattivi nell'account di archiviazione. All'avvio dell'app per le funzioni, recupera l'URL della firma di accesso condiviso dall'insieme di credenziali delle chiavi. Infine, l'app per le funzioni carica i file dell'applicazione dall'account di archiviazione.
Se è necessario revocare l'accesso dell'app per le funzioni all'account di archiviazione, è possibile revocare l'accesso all'insieme di credenziali delle chiavi o ruotare le chiavi dell'account di archiviazione, entrambe invalidate l'URL della firma di accesso condiviso.
Domande frequenti
È previsto un addebito aggiuntivo per l'esecuzione dell'app per le funzioni 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 per le funzioni?
- 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.