Usare chiavi gestite dal cliente per crittografare i dati di Configurazione app
Configurazione app di Azure crittografa le informazioni riservate inattive. L’uso delle chiavi gestite dal cliente offre protezione dati avanzata consentendo di gestire le chiavi di crittografia. Quando viene usata la crittografia della chiave gestita, tutte le informazioni riservate in Configurazione app vengono crittografate con una chiave di Azure Key Vault fornita dall'utente. In questo modo è possibile ruotare la chiave di crittografia su richiesta. Offre anche la possibilità di revocare l'accesso di Configurazione app di Azure alle informazioni riservate revocando all'istanza di Configurazione app l'accesso alla chiave.
Panoramica
Configurazione app di Azure crittografa le informazioni riservate inattive usando una chiave di crittografia AES a 256 bit fornita da Microsoft. Ogni istanza di Configurazione app ha una propria chiave di crittografia gestita dal servizio e usata per crittografare le informazioni sensibili. Le informazioni sensibili includono i valori presenti nelle coppie chiave-valore. Quando la funzionalità di chiave gestita dal cliente è abilitata, Configurazione app usa un'identità gestita assegnata all'istanza di Configurazione app per eseguire l'autenticazione con Microsoft Entra ID. L'identità gestita chiama quindi Azure Key Vault ed esegue il wrapping della chiave di crittografia dell'istanza di Configurazione app. La chiave di crittografia di cui è stato eseguito il wrapping viene quindi archiviata e la chiave di crittografia non sottoposta a wrapping viene memorizzata nella cache in Configurazione app per un'ora. Ogni ora, Configurazione app aggiorna la versione non di cui è stato eseguito il wrapping della chiave di crittografia dell'istanza di Configurazione app. Questo processo garantisce la disponibilità in condizioni operative normali.
Importante
Se l'identità assegnata all'istanza di Configurazione app non è più autorizzata a annullare il wrapping della chiave di crittografia dell'istanza o se la chiave gestita viene eliminata definitivamente, non sarà più possibile decrittografare le informazioni riservate archiviate nell'istanza di Configurazione app. Usando la funzione di eliminazione temporanea di Azure Key Vault, si riduce la possibilità di eliminare accidentalmente la chiave di crittografia.
Quando gli utenti abilitano la funzionalità di chiave gestita dal cliente nell'istanza di Configurazione app di Azure, controllano la capacità del servizio di accedere alle informazioni riservate. La chiave gestita funge da chiave di crittografia radice. Gli utenti possono revocare l'accesso dell'istanza di Configurazione app alla chiave gestita modificando i criteri di accesso a Key Vault. Quando questo accesso viene revocato, Configurazione app perderà la possibilità di decrittografare i dati utente entro un'ora. A questo punto, l'istanza di Configurazione app impedirà tutti i tentativi di accesso. Questa situazione è recuperabile concedendo nuovamente al servizio l'accesso alla chiave gestita. Entro un'ora, Configurazione app sarà in grado di decrittografare i dati utente e operare in condizioni normali.
Nota
Tutti i dati di Configurazione app di Azure vengono archiviati per un massimo di 24 ore in un backup isolato. Ciò include la chiave di crittografia senza wrapping. Questi dati non sono immediatamente disponibili per il servizio o il team di servizio. In caso di ripristino di emergenza, Configurazione app di Azure si revoca nuovamente dai dati della chiave gestita.
Requisiti
I componenti seguenti sono necessari per abilitare la funzionalità di chiave gestita dal cliente per Configurazione app di Azure:
- Un'istanza di Configurazione app di Azure di livello Standard o Premium.
- Un Azure Key Vault con eliminazione temporanea e protezione dalla rimozione definitiva abilitate.
- Una chiave RSA o RSA-HSM all'interno del Key Vault.
- La chiave non deve essere scaduta, deve essere abilitata e deve disporre di funzionalità di wrapping e annullamento del wrapping abilitate.
Dopo aver configurato queste risorse, seguire questa procedura in modo che Configurazione app di Azure possa usare la chiave di Key Vault:
- Assegnare un'identità gestita all'istanza di Configurazione app di Azure.
- Concedere le autorizzazioni all'identità per poter accedere alla chiave di Key Vault.
- Per i Key Vault con controllo degli accessi in base al ruolo di Azure
Key Vault Crypto Service Encryption User
abilitato, assegnare l'identità al ruolo nel Key Vault delle chiavi di destinazione. - Per l'uso dell'autorizzazione dei criteri di accesso di Key Vault, concedere all'identità i permessi
GET
,WRAP
eUNWRAP
nei criteri di accesso dei Key Vault di destinazione.
- Per i Key Vault con controllo degli accessi in base al ruolo di Azure
Abilitare la crittografia della chiave gestita dal cliente per l'archivio di Configurazione app
Creare un archivio di Configurazione app nel livello Standard o Premium, se non ne è disponibile uno.
Usando l'interfaccia della riga di comando di Azure, creare un'istanza di Azure Key Vault con la protezione dalla rimozione definitiva abilitata. L'eliminazione temporanea è abilitata per impostazione predefinita. Sia
vault-name
siaresource-group-name
sono forniti dall'utente e devono essere univoci. In questi esempi vengono usaticontoso-vault
econtoso-resource-group
.az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
Creare una chiave di Key Vault. Specificare un
key-name
univoco per questa chiave e sostituire il nome del Key Vault (contoso-vault
) creato nel passaggio 2. Specificare se si preferisceRSA
oRSA-HSM
crittografia (RSA-HSM
è disponibile solo nel livello Premium).az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
L'output di questo comando mostra l'ID chiave (
kid
) per la chiave generata. Annotare l’ID chiave per utilizzarlo successivamente in questo esercizio. L'ID chiave ha il formatohttps://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}
. L'ID chiave ha tre componenti importanti:- URI del Key Vault:
https://{my key vault}.vault.azure.net
- Nome della chiave di Key Vault:
{key-name}
- Versione della chiave di Key Vault:
{key-version}
- URI del Key Vault:
Creare un'identità gestita assegnata dal sistema usando l'interfaccia della riga di comando di Azure, sostituendo il nome dell'istanza di Configurazione app e il gruppo di risorse usati nei passaggi precedenti. L'identità gestita verrà usata per accedere alla chiave gestita. Viene usato
contoso-app-config
per illustrare il nome di un'istanza di Configurazione app:az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
L'output di questo comando include l'ID entità (
"principalId"
) e l'ID tenant ("tenantId"
) dell'identità assegnata dal sistema. Questi ID verranno usati per concedere all'identità l'accesso alla chiave gestita.{ "principalId": {Principal Id}, "tenantId": {Tenant Id}, "type": "SystemAssigned", "userAssignedIdentities": null }
L'identità gestita dell'istanza di Configurazione app di Azure deve accedere alla chiave per eseguire la convalida, la crittografia e la decrittografia della chiave. Il set specifico di azioni a cui deve accedere include:
GET
,WRAP
eUNWRAP
per le chiavi. Queste autorizzazioni possono essere concesse assegnando il ruolo diKey Vault Crypto Service Encryption User
per i Key Vault abilitati per il controllo degli accessi in base al ruolo di Azure. Per i Key Vault che usano l'autorizzazione dei criteri di accesso, impostare i criteri per le autorizzazioni di chiave indicate in precedenza. La concessione dell'accesso richiede l'ID principale dell'identità gestita dell'istanza di Configurazione app. Sostituire il valore illustrato di seguito comecontoso-principalId
con l'ID entità ottenuto nel passaggio precedente. Concedere l'autorizzazione alla chiave gestita usando la riga di comando:Per i Key Vault con controllo degli accessi in base al ruolo di Azure abilitato, usare il comando seguente.
az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
Ora che l'istanza di Configurazione app di Azure può accedere alla chiave gestita, è possibile abilitare la funzionalità della chiave gestita dal cliente nel servizio usando l'interfaccia della riga di comando di Azure. Ricordare le proprietà seguenti registrate durante i passaggi di creazione della chiave:
key name
key vault URI
.az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-version key-version --encryption-key-vault key-vault-Uri
L'istanza di Configurazione app di Azure è ora configurata per l'uso di una chiave gestita dal cliente archiviata in Azure Key Vault.
Passaggi successivi
In questo articolo è stata configurata l'istanza di Configurazione app di Azure per l'uso di una chiave gestita dal cliente per la crittografia. Per altre informazioni su come integrare il servizio app con le identità gestite di Azure, continuare con il passaggio successivo.