Usare chiavi gestite dal cliente per crittografare i dati Configurazione app

app Azure Configurazione crittografa le informazioni riservate inattive. L'uso delle chiavi gestite dal cliente offre una protezione dei dati avanzata consentendo di gestire le chiavi di crittografia. Quando si usa 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 app Azure l'accesso della configurazione alle informazioni riservate revocando all'istanza di Configurazione app l'accesso alla chiave.

Panoramica

app Azure Configurazione 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 con wrapping viene quindi archiviata e la chiave di crittografia non sottoposta a wrapping viene memorizzata nella cache entro Configurazione app per un'ora. Ogni ora, il 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 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 dell'insieme di credenziali delle chiavi. 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 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 team del servizio o del servizio. In caso di ripristino di emergenza, app Azure Configurazione 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:

  • Livello Standard app Azure'istanza di Configurazione.
  • Azure Key Vault con funzionalità di eliminazione temporanea e protezione dall'eliminazione abilitate.
  • Una chiave RSA o RSA-HSM all'interno dell'insieme di credenziali delle chiavi.
    • 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 la configurazione app Azure possa usare la chiave dell'insieme di credenziali delle chiavi:

  1. Assegnare un'identità gestita all'istanza di configurazione app Azure.
  2. Concedere le autorizzazioni GET, WRAP e UNWRAP di identità nel criterio di accesso di Key Vault di destinazione.

Abilitare la crittografia della chiave gestita dal cliente per l'archivio Configurazione app

  1. Creare un archivio Configurazione app nel livello Standard, se non è disponibile.

  2. Usando l'interfaccia della riga di comando di Azure, creare un'istanza di Azure Key Vault con la protezione di ripulitura abilitata. L'eliminazione temporanea è abilitata per impostazione predefinita. Sia vault-name che resource-group-name sono forniti dall'utente e devono essere univoci. In questi esempi vengono usati contoso-vault e contoso-resource-group .

    az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
    
  3. Creare una chiave di Key Vault. Specificare un valore univoco key-name per questa chiave e sostituire il nome dell'insieme di credenziali delle chiavi (contoso-vault) creato nel passaggio 2. Specificare se si preferisce RSA o RSA-HSM la 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. Prendere nota dell'ID chiave da usare più avanti in questo esercizio. L'ID chiave ha il formato : https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}. L'ID chiave ha tre componenti importanti:

    1. URI dell'insieme di credenziali delle chiavi: https://{my key vault}.vault.azure.net
    2. Nome della chiave dell'insieme di credenziali delle chiavi: {key-name}
    3. Versione della chiave di Key Vault: {key-version}
  4. Creare un'identità gestita assegnata dal sistema usando l'interfaccia della riga di comando di Azure, sostituendo il nome dell'istanza Configurazione app e del gruppo di risorse usato 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 ("tenandId") 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
    }
    
  5. L'identità gestita dell'istanza di app Azure Configuration deve accedere alla chiave per eseguire la convalida, la crittografia e la decrittografia della chiave. Il set specifico di azioni a cui è necessario l'accesso include: GET, WRAPe UNWRAP per le chiavi. La concessione dell'accesso richiede l'ID entità dell'identità gestita dell'istanza di Configurazione app. Sostituire il valore illustrato di seguito come contoso-principalId con l'ID entità ottenuto nel passaggio precedente. Concedere l'autorizzazione alla chiave gestita usando la riga di comando:

    az keyvault set-policy -n contoso-vault --object-id contoso-principalId --key-permissions get wrapKey unwrapKey
    
  6. Ora che l'istanza di configurazione app 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 namekey 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 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 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.