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à 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'istanza di configurazione app Azure

Per iniziare, è necessario configurare correttamente app Azure istanza di Configurazione. Se non è ancora disponibile un'istanza di Configurazione app, seguire una delle guide introduttive seguenti per configurare un'istanza:

Suggerimento

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire le istruzioni della riga di comando riportate in questo articolo. Include strumenti comuni di Azure preinstallati, tra cui .NET Core SDK. Se è stato eseguito l'accesso alla sottoscrizione di Azure, avviare Azure Cloud Shell da shell.azure.com. Per altre informazioni su Azure Cloud Shell, leggere la documentazione.

Creare e configurare un insieme di credenziali delle chiavi di Azure

  1. Creare un'istanza di Azure Key Vault usando l'interfaccia della riga di comando di Azure. 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
    
  2. Abilitare l'eliminazione temporanea e la protezione dalla ripulitura per Key Vault. Sostituire i nomi dell'insieme di credenziali delle chiavi () e del gruppo di risorse (contoso-vaultcontoso-resource-group) creati nel passaggio 1.

    az keyvault update --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection --enable-soft-delete
    
  3. Creare una chiave di Key Vault. Specificare un valore univoco key-name per questa chiave e sostituire i nomi dell'insieme di credenziali delle chiavi (contoso-vault) creato nel passaggio 1. Specificare se si preferisce o RSA-HSM si preferisce RSA la crittografia.

    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 di Key Vault: 'https://{my key vault}.vault.azure.net
    2. Nome chiave dell'insieme di credenziali delle chiavi: {Nome chiave}
    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. Questo valore è stato ottenuto nel passaggio precedente. Viene illustrato di seguito come contoso-principalId. 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. Dopo 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.