Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di Azure
Questo articolo descrive le attività per la rotazione delle chiavi master della colonna Always Encrypted e delle chiavi di crittografia della colonna con SQL Server Management Studio (SSMS).
Per una panoramica della gestione delle chiavi Always Encrypted, incluse le raccomandazioni sulle procedure consigliate e importanti considerazioni sulla sicurezza, vedere Panoramica della gestione delle chiavi per Always Encrypted.
Nota
L'uso delle chiavi master di colonna archiviate in un modulo di protezione hardware gestito in Azure Key Vault richiede SSMS 18.9 o una versione successiva.
Ruotare le chiavi principali della colonna
La rotazione di una chiave master della colonna è il processo di sostituzione di una chiave master della colonna esistente con una nuova chiave master della colonna. Potrebbe essere necessario ruotare una chiave se è stata compromessa o per rispettare i criteri o le normative di conformità dell'organizzazione che impongono la rotazione regolare delle chiavi crittografiche. La rotazione delle chiavi master della colonna consiste nella decrittografia delle chiavi di crittografia della colonna protette dalla chiave master corrente, nella loro successiva crittografia con la nuova chiave master della colonna e nell'aggiornamento dei metadati delle chiavi.
Passaggio 1: Fornire una nuova chiave principale per la colonna
Seguire la procedura descritta in Effettuare il provisioning delle chiavi master della colonna con la finestra di dialogo Nuova chiave master della colonna.
Nota
Quando si utilizza Azure Key Vault come archivio delle chiavi, la rotazione delle chiavi gestite dai clienti multitenant non è supportata. Assicurarsi che la nuova chiave gestita dal cliente si trova nello stesso tenant di quello esistente.
Passaggio 2: Eseguire la crittografia delle chiavi di crittografia con la nuova chiave master della colonna
Una chiave master della colonna protegge in genere una o più chiavi di crittografia di colonna. Ogni chiave di crittografia della colonna ha un valore crittografato archiviato nel database che è il prodotto della crittografia della chiave di crittografia della colonna con la chiave master della colonna. In questo passaggio, crittografa ciascuna delle chiavi di crittografia della colonna, che sono protette con la chiave master della colonna che stai ruotando, utilizzando la nuova chiave master della colonna, e archivia il nuovo valore crittografato nel database. Di conseguenza, ogni chiave di crittografia della colonna interessata dalla rotazione avrà due valori crittografati: un valore crittografato con la chiave master della colonna esistente e un nuovo valore crittografato con la nuova chiave master della colonna.
- Usando Esplora oggetti, passare alla cartella Sicurezza>Chiavi Sempre Crittografate>Chiavi Master di Colonna e individuare la chiave master della colonna che stai ruotando.
- Fare clic con il pulsante destro del mouse sulla chiave master della colonna e scegliere Ruota.
- Nella finestra di dialogo Rotazione della chiave master di colonna, seleziona nel campo Destinazione il nome della nuova chiave master di colonna che hai creato nel passaggio 1.
- Esaminare l'elenco delle chiavi di crittografia delle colonne, protette dalle chiavi master delle colonne esistenti. Queste chiavi saranno coinvolte nella rotazione.
- Seleziona OK.
SQL Server Management Studio ottiene i metadati delle chiavi di crittografia della colonna protette con la chiave master della colonna precedente e i metadati delle chiavi master della colonna precedenti e delle nuove chiavi master della colonna. Quindi, SSMS usa i metadati della chiave master della colonna per accedere all'archivio dati contenente la chiave master della colonna precedente e decrittografare le chiavi di crittografia della colonna. Successivamente, SSMS accederà all'archivio chiavi contenente la nuova chiave master della colonna per produrre un nuovo set di valori crittografati delle chiavi di crittografia della colonna e quindi aggiungerà i nuovi valori ai metadati (generando ed eseguendo istruzioni ALTER COLUMN ENCRYPTION KEY ).
Nota
Assicurarsi che ciascuna delle chiavi di crittografia della colonna, criptata con la vecchia chiave master della colonna, non sia criptata con nessun'altra chiave master della colonna. In altre parole, ogni chiave di crittografia della colonna interessata dalla rotazione deve avere esattamente un valore crittografato nel database. Se una chiave di crittografia della colonna interessata ha più di un valore crittografato, è necessario rimuovere il valore prima di procedere con la rotazione (vedere passaggio 4 su come rimuovere un valore crittografato di una chiave di crittografia della colonna).
Passaggio 3: Configurazione delle applicazioni con la nuova chiave master della colonna
In questo passaggio, è necessario assicurarsi che tutte le applicazioni client che eseguono query sulle colonne di database protette con la chiave master della colonna, che si sta ruotando, possano accedere alla nuova chiave master della colonna. Vale a dire, le colonne di database crittografate con una chiave di crittografia della colonna, a sua volta crittografata con la chiave master della colonna in rotazione. Questo passaggio dipende dal tipo di archivio di chiavi nel quale si trova la nuova chiave master di colonna. Ad esempio:
- Se la nuova chiave master della colonna è un certificato archiviato nell'archivio certificati di Windows, è necessario distribuire il certificato nello stesso percorso dell'archivio certificati (utente corrente o computer locale) del percorso specificato nel percorso della chiave master della colonna nel database. L'applicazione deve poter accedere al certificato:
- Se il certificato viene archiviato nel percorso dell'archivio certificati Utente Corrente, il certificato deve essere importato nell'archivio Utente Corrente dell'identità Windows dell'applicazione (utente).
- Se il certificato viene archiviato nel percorso dell'archivio certificati computer locale , l'identità di Windows dell'applicazione deve disporre dell'autorizzazione per accedere al certificato.
- Se la nuova chiave master della colonna viene archiviata nell'insieme di credenziali delle chiavi di Microsoft Azure, l'applicazione deve essere implementata per autenticarsi in Azure e deve avere l'autorizzazione ad accedere alla chiave.
Per informazioni dettagliate, vedere Creare e archiviare chiavi master della colonna per Always Encrypted.
Nota
A questo punto della rotazione, sia la nuova chiave master della colonna che quella precedente sono valide e possono essere usate per accedere ai dati.
Passaggio 4: Eseguire la pulizia dei valori della chiave di crittografia della colonna crittografati con la chiave master della colonna precedente
Dopo aver configurato tutte le applicazioni in modo che usino la nuova chiave master della colonna, rimuovere i valori delle chiavi di crittografia della colonna crittografate con la chiave master della colonna precedente dal database. La rimozione dei valori precedenti assicurerà che siete pronti per la prossima rotazione. Tenere presente che ogni chiave di crittografia della colonna, protetta con una chiave master della colonna che deve essere ruotata, deve avere esattamente un valore crittografato.
Un altro motivo per cui è necessario pulire il valore precedente prima di archiviare o rimuovere la chiave master della colonna precedente riguarda le prestazioni: quando si eseguono query su una colonna crittografata, un driver client abilitato per la crittografia sempre attiva potrebbe tentare di decrittografare due valori, il valore precedente e quello nuovo. Il driver non riconosce quale delle due chiavi master della colonna sia valida nell'ambiente dell'applicazione, quindi recupera entrambi i valori dal server. Se la decrittografia di uno dei valori non va a buon fine in ragione del fatto che il valore è protetto con una chiave master della colonna non disponibile (ad esempio, la chiave master della colonna precedente rimossa dall'archivio), il driver tenterà di decrittografare un altro valore usando la nuova chiave master della colonna.
Avviso
Se si rimuove il valore di una chiave di crittografia della colonna prima che la relativa chiave master della colonna diventi disponibile per un'applicazione, l'applicazione non sarà più in grado di decrittografare la colonna del database.
- Usando Esplora oggetti, passare alla cartella > e individuare la chiave principale di colonna esistente da sostituire.
- Fare clic con il pulsante destro del mouse sulla chiave master della colonna esistente e scegliere Pulizia.
- Verificare l'elenco dei valori delle chiavi di crittografia della colonna da rimuovere.
- Seleziona OK.
SQL Server Management Studio eseguirà istruzioni ALTER COLUMN ENCRYPTION KEY per rimuovere i valori crittografati delle chiavi di crittografia della colonna crittografate con la vecchia chiave master della colonna.
Passaggio 5: Eliminare i metadati per la chiave master della colonna precedente
Se si sceglie di rimuovere la definizione della chiave master della colonna precedente dal database, eseguire la procedura descritta di seguito.
- Usando Esplora oggetti, passare alla cartella Security>Always Encrypted Keys - Chiavi Master Colonna> e individuare la vecchia chiave master della colonna da rimuovere dal database.
- Fare clic con il pulsante destro del mouse sulla chiave master della colonna precedente e scegliere Elimina. Verrà generata un'istruzione DROP COLUMN MASTER KEY per rimuovere i metadati della chiave master della colonna.
- Seleziona OK.
Nota
È consigliabile non eliminare definitivamente la chiave master della colonna precedente dopo la rotazione. È opportuno invece conservare la chiave master precedente della colonna nell'archivio chiavi corrente o archiviarla in un altro posto sicuro. Se si ripristina il database da un file di backup a un punto nel tempo prima della configurazione della nuova chiave master della colonna, sarà necessaria la chiave precedente per accedere ai dati.
Autorizzazioni per la rotazione della chiave master della colonna
La rotazione di una chiave master della colonna richiede le seguenti autorizzazioni di database:
- ALTER ANY COLUMN MASTER KEY : necessario per creare metadati per la nuova chiave master della colonna ed eliminare i metadati per la chiave master della colonna precedente.
- ALTER ANY COLUMN ENCRYPTION KEY : obbligatorio per modificare i metadati della chiave di crittografia della colonna (aggiungere nuovi valori crittografati).
Sono necessarie le autorizzazioni degli archivi di chiavi per poter accedere sia alla chiave master della colonna precedente che a quella nuova, in entrambe i rispettivi archivi di chiavi. Per informazioni dettagliate sui permessi dell'archivio chiavi necessari per le operazioni di gestione delle chiavi, consultare Creare e archiviare chiavi principali della colonna per Always Encrypted e trovare una sezione pertinente per il vostro archivio chiavi.
Ruotare le chiavi di crittografia della colonna
La rotazione di una chiave di crittografia delle colonne comporta la decrittografia dei dati in tutte le colonne crittografate con la chiave da ruotare, e la crittografia nuovamente dei dati utilizzando la nuova chiave di crittografia delle colonne.
Nota
La rotazione di una chiave di crittografia della colonna può richiedere molto tempo, se le tabelle contenenti le colonne crittografate con la chiave da ruotare sono di grandi dimensioni. Mentre i dati vengono ricrittografati, le applicazioni non possono scrivere nelle tabelle interessate. Pertanto, l'organizzazione deve pianificare con molta attenzione una rotazione della chiave di crittografia della colonna. Per ruotare una chiave di crittografia della colonna, utilizzare Always Encrypted Wizard.
- Aprire la procedura guidata per il database: fare clic con il pulsante destro del mouse sul database, scegliere Attività e quindi selezionare Crittografa colonne.
- Esaminare la pagina Introduzione e quindi selezionare Avanti.
- Nella pagina Selezione colonne espandere le tabelle e individuare tutte le colonne da sostituire attualmente crittografate con la chiave di crittografia della colonna precedente.
- Per ogni colonna crittografata con la chiave di crittografia della colonna precedente, impostare Chiave di crittografia su una nuova chiave generata automaticamente. Nota: In alternativa, è possibile creare una nuova chiave di crittografia della colonna prima di eseguire la procedura guidata. Vedere Eseguire il provisioning delle chiavi di crittografia della colonna con il dialogo Nuova chiave di crittografia della colonna.
- Nella pagina Configurazione chiave master selezionare un percorso in cui archiviare la nuova chiave e selezionare un'origine chiave master e quindi selezionare Avanti. Nota: Se si usa una chiave di crittografia della colonna esistente (non una generata automaticamente), non viene eseguita alcuna azione in questa pagina.
- Nella pagina Convalida scegliere se eseguire lo script immediatamente o creare uno script di PowerShell e quindi selezionare Avanti.
- Nella pagina Riepilogo esaminare le opzioni selezionate e quindi selezionare Fine e chiudere la procedura guidata al termine.
- Usando Esplora oggetti, accedere alla cartella Sicurezza/Chiavi Sempre Crittografate/Chiavi di Crittografia delle Colonne e individuare la vecchia chiave di crittografia della colonna da rimuovere dal database. Fare clic con il pulsante destro del mouse sulla chiave e scegliere Elimina.
Autorizzazioni per la rotazione delle chiavi di crittografia della colonna
La rotazione di una chiave di crittografia della colonna richiede le autorizzazioni di database seguenti: ALTER ANY COLUMN MASTER KEY . Se si usa una nuova chiave di crittografia della colonna generata automaticamente, verrà generata anche una nuova chiave master della colonna e i relativi nuovi metadati. ALTER ANY COLUMN ENCRYPTION KEY -required per aggiungere metadati per la nuova chiave di crittografia della colonna.
Sono necessarie le autorizzazioni dell'archivio di chiavi per poter accedere alle chiavi master della colonna sia per la nuova chiave di crittografia della colonna sia per quella precedente. Per informazioni dettagliate sui permessi dell'archivio chiavi necessari per le operazioni di gestione delle chiavi, consultare Creare e archiviare chiavi principali della colonna per Always Encrypted e trovare una sezione pertinente per il vostro archivio chiavi.
Contenuti correlati
- Always Encrypted
- Panoramica della gestione delle chiavi per Always Encrypted
- Configurare Always Encrypted con SQL Server Management Studio
- Configurare Always Encrypted con PowerShell
- CREATE COLUMN MASTER KEY (Transact-SQL)
- DROP COLUMN MASTER KEY (Transact-SQL)
- Crea chiave di crittografia della colonna (Transact-SQL)
- ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
- DROP COLUMN ENCRYPTION KEY (Transact-SQL)
- sys.column_master_keys (Transact-SQL)
- sys.column_encryption_keys (Transact-SQL)
- Eseguire query su colonne usando Always Encrypted con SQL Server Management Studio
- Sviluppare applicazioni con Always Encrypted