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.
Per SQL Always On, sono necessari passaggi aggiuntivi quando le informazioni di BitLocker vengono crittografate con le istruzioni in Crittografare i dati di ripristino nel database. I passaggi aggiuntivi assicurano che tutti i nodi Always On possano aprire automaticamente la chiave master del database (DMK) quando si verifica un evento di failover. La seguente procedura consente di recuperare facilmente le chiavi di BitLocker senza intervento manuale.
Panoramica di SQL Always On quando i dati di ripristino di BitLocker vengono crittografati nel database
SQL Server crittografa i dati usando un'infrastruttura gerarchica ed è descritto in dettaglio in Gerarchia di crittografia.
- Chiave master del sito (SMK): questa chiave è una chiave per istanza univoca per ogni nodo SQL Server Always On e non viene replicata. Viene usato per crittografare la chiave master del database.
- Chiave master del database (DMK): questa chiave viene archiviata nel database e replicata. Viene usato per crittografare il BitLockerManagement_CERT.
- BitLockerManagement_CERT - Il certificato viene archiviato nel database e replicato. Viene usato per crittografare alcuni dati correlati a BitLocker, ad esempio le chiavi di ripristino.
L'SMK crittografa la password DMK. Le SMK sono specifiche del nodo. Quando si verifica un evento di failover, il nuovo nodo primario non può decrittografare la password DMK perché è stata crittografata con un SMK diverso. L'impostazione della password DMK in ogni nodo consente al nodo di decrittografare la password in caso di failover.
Nota
Il BitLockerManagement_CERT esegue la crittografia delle colonne. Se il certificato viene perso o eliminato oppure se la chiave DMK che lo ha crittografato viene persa o eliminata, le chiavi di BitLocker devono essere depositate e crittografate di nuovo.
Se la password della chiave master del database (DMK) è nota
Esegui il comando seguente in ogni nodo del gruppo di disponibilità che ospita il database di Configuration Manager:
Importante
Nel comando seguente:
- Sostituisci
passwordtutto con una password complessa di tua scelta. Assicurati di archiviare in modo sicuro la password per riferimento futuro. - Sostituire
CM_XXXcon il nome del database di Configuration Manager (CM).
EXEC sp_control_dbmasterkey_password
@db_name = N'CM_XXX',
@password = N'password',
@action = N'add';
Questo comando registra la password DMK con la chiave master del servizio (SMK) locale, consentendo a SQL Server di aprire automaticamente la DMK quando si verifica un evento di failover. Questo processo garantisce che la DMK possa essere decrittografata automaticamente su tale nodo dopo un failover o un riavvio.
Per verificare che tutti i nodi possano aprire automaticamente la chiave master del database (DMK) e decrittografare i dati, vedere la sezione Verificare che tutti i nodi possano aprire automaticamente la chiave master del database (DMK) e decrittografare i dati in questo articolo.
Se la password della chiave master del database (DMK) esistente è sconosciuta
Se la password DMK esistente è sconosciuta, la DMK esistente deve essere eliminata e crearne una nuova con una password nota. In questi passaggi viene descritto come eseguire questa procedura.
Trovare un DMK valido
Se non è noto quale nodo disponga di una DMK valida, seguire questa procedura per determinare dove è aperta la DMK esistente:
Importante
Nelle query e nei comandi seguenti:
- Sostituisci
passwordtutto con una password complessa di tua scelta. Assicurarsi di archiviare in modo sicuro la password in una posizione nota per riferimento futuro. - Sostituire
CM_XXXcon il nome del database di Configuration Manager (CM).
Eseguire la query seguente nel nodo primario:
SELECT TOP 5 RecoveryAndHardwareCore.DecryptString(RecoveryKey, DEFAULT) FROM RecoveryAndHardwareCore_Keys ORDER BY LastUpdateTime DESCNella query risultante:
- Se il DMK è aperto, la query restituisce valori di testo non crittografato per tutte le righe che contengono una chiave valida. Questo nodo è il nodo su cui iniziare e il passaggio successivo può essere saltato.
- Se il DMK non è aperto, la query restituisce valori NULL per tutte le righe. Il nodo corrente non è il nodo in cui è aperta la DMK. Seguire il passaggio successivo per trovare il nodo in cui è aperta la DMK.
Se la query restituisce tutti i valori NULL, eseguire il failover in ogni nodo secondario e ripetere i passaggi precedenti finché non viene trovato il nodo in grado di decrittografare correttamente RecoveryAndHardwareCore_Keys . Questo nodo è il nodo su cui iniziare.
Creare una nuova chiave master del database
Una volta identificato il nodo corretto con la DMK aperta, attenersi alla seguente procedura:
Nel nodo identificato nei passaggi precedenti eseguire la query seguente per esportare il certificato BitLockerManagement_CERT con la relativa chiave privata. Assicurarsi di usare una password complessa:
BACKUP CERTIFICATE BitLockerManagement_CERT TO FILE = 'C:\Windows\Temp\BitLockerManagement_CERT' WITH PRIVATE KEY ( FILE = 'C:\Windows\Temp\BitLockerManagement_CERT_KEY', ENCRYPTION BY PASSWORD = 'password' );Eseguire il backup della chiave master del database (DMK) esistente eseguendo la query seguente per esportare la chiave DMK esistente:
BACKUP MASTER KEY TO FILE = 'C:\Windows\Temp\DMK' ENCRYPTION BY PASSWORD = 'password';Nota
Questo passaggio è facoltativo ma consigliato. Assicurarsi di conservare il backup in una posizione nota sicura.
Eseguire la query seguente per eliminare il certificato e il DMK esistenti:
DROP CERTIFICATE BitLockerManagement_CERT; DROP MASTER KEY;Questo passaggio rimuove le vecchie chiavi.
Eseguire la query seguente per creare un nuovo DMK. Assicurarsi di usare una password complessa:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';Eseguire la query seguente per registrare la nuova password DMK con la SMK locale:
EXEC sp_control_dbmasterkey_password @db_name = N'CM_XXX', @password = N'password', @action = N'add';Per importare il certificato BitLockerManagement_CERT esportato in precedenza, eseguire la query seguente:
CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore FROM FILE = 'C:\Windows\Temp\BitLockerManagement_CERT' WITH PRIVATE KEY ( FILE = 'C:\Windows\Temp\BitLockerManagement_CERT_KEY', DECRYPTION BY PASSWORD = 'password' );Eseguire la query seguente per concedere le autorizzazioni di controllo necessarie per il certificato:
GRANT CONTROL ON CERTIFICATE::BitLockerManagement_CERT TO RecoveryAndHardwareRead; GRANT CONTROL ON CERTIFICATE::BitLockerManagement_CERT TO RecoveryAndHardwareWrite;Eseguire il failover al nodo successivo.
Eseguire la query seguente per registrare la password DMK con la SMK locale. Eseguire una sola volta per replica:
EXEC sp_control_dbmasterkey_password @db_name = N'CM_XXX', @password = N'password', @action = N'add';Esegui i due passaggi precedenti su tutti i nodi rimanenti.
Eseguire il failover nel nodo originale.
Per verificare che tutti i nodi possano aprire automaticamente la chiave master del database (DMK) e decrittografare i dati, vedere la sezione successiva Verificare che tutti i nodi possano aprire automaticamente la chiave master del database (DMK) e decrittografare i dati in questo articolo.
Verificare che tutti i nodi possano aprire automaticamente la chiave master del database (DMK) e decrittografare i dati
Per verificare che tutti i nodi possano aprire automaticamente la chiave master del database e decrittografare i dati:
Eseguire il failover in un nodo.
Eseguire la query seguente:
SELECT TOP 5 RecoveryAndHardwareCore.DecryptString(RecoveryKey, DEFAULT) FROM RecoveryAndHardwareCore_Keys ORDER BY LastUpdateTime DESCSe la query restituisce valori di testo non crittografato per le righe che contengono una chiave valida, il nodo può aprire automaticamente la chiave master del database e decrittografare i dati.
Ripetere i tre passaggi precedenti per ogni nodo aggiuntivo.
Consiglio
Per una maggiore sicurezza, archivia in modo sicuro la password DMK complessa. Ad esempio, in Azure Key Vault o in un altro archivio segreto sicuro. Inoltre, evita di codificare la password DMK in testo normale negli script o nei file di configurazione.