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
Questo articolo illustra come ruotare manualmente la chiave asimmetrica usata da Transparent Data Encryption (TDE) con Extensible Key Management (EKM) e Azure Key Vault.
Usare questa procedura dopo aver configurato TDE con Azure Key Vault. Per istruzioni di configurazione iniziali, vedere Configurare Transparent Data Encryption con Azure Key Vault per SQL Server.
Importante
SQL Server non ruota automaticamente la chiave asimmetrica usata per TDE. La rotazione è un'operazione manuale.
La rotazione della protezione TDE logica è un'operazione online e in genere viene completata rapidamente, perché SQL Server crittografa nuovamente solo la chiave di crittografia del database (DEK), non l'intero database.
Non eliminare le versioni chiave precedenti dopo la rotazione. Le versioni precedenti potrebbero comunque essere necessarie per ripristinare i backup precedenti, i log delle transazioni o altri artefatti di ripristino.
Prima di iniziare
- Completare la configurazione iniziale di EKM e TDE.
- Verifica che SQL Server possa attualmente accedere a Key Vault.
- Assicurarsi di disporre delle autorizzazioni per creare credenziali, account di accesso e chiavi asimmetriche in SQL Server.
- Verificare che il modello di autenticazione sia ancora valido:
- Entità servizio: la registrazione dell'app e il segreto client sono validi.
- Identità gestita: l'identità gestita SQL Server è ancora abilitata e dispone delle autorizzazioni di chiave necessarie.
Ruotare la chiave
Scegliere il modello di autenticazione e seguire i passaggi corrispondenti.
In Azure Key Vault o in Managed HSM, ruotare la chiave:
- Creare una nuova versione con lo stesso nome di chiave o
- Creare un nuovo nome di chiave.
In SQL Server creare una credenziale per l'operazione di rotazione, se necessario.
CREATE CREDENTIAL <new_credential_name> WITH IDENTITY = <key_vault_name_or_uri_without_https>, SECRET = '<client_id_without_hyphens><client_secret>' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;Aggiungere le credenziali all'entità di installazione che crea la chiave asimmetrica successiva.
ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL [<new_credential_name>];Creare la nuova chiave asimmetrica SQL Server da Azure Key Vault.
Note
Per la rotazione manuale, SQL Server supporta sia un nome di chiave senza versione che un riferimento di chiave con controllo delle versioni:
- Senza versione: usare
<key_name>per consentire SQL Server usare la versione della chiave più elevata disponibile in Azure Key Vault. - Con versionamento: usare
<key_name>/<version>per vincolare le operazioni di crittografia a una versione specifica della chiave.
Non è necessario creare un nome della chiave AKV diverso per ruotarla. Ruotare le chiavi creando una nuova versione della chiave e quindi creando una nuova chiave asimmetrica SQL Server che fa riferimento al modulo senza versione o con controllo delle versioni.
Usare un nome di chiave senza versione o una versione della chiave specifica:
CREATE ASYMMETRIC KEY <new_ekm_key_name> FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = '<key_name_or_key_name/version>', CREATION_DISPOSITION = OPEN_EXISTING;- Senza versione: usare
Creare un nuovo account di accesso dalla nuova chiave asimmetrica.
CREATE LOGIN <new_login_name> FROM ASYMMETRIC KEY <new_ekm_key_name>;Spostare la mappatura delle credenziali dall'accesso di configurazione al nuovo accesso con chiave asimmetrica.
ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL [<new_credential_name>]; ALTER LOGIN <new_login_name> ADD CREDENTIAL [<new_credential_name>];Crittografare nuovamente la chiave dek del database usando la nuova chiave asimmetrica.
USE [<database_name>]; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;
Verificare la rotazione
Verificare i metadati di crittografia per il database.
SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('<database_name>');Verificare l'impronta digitale della chiave asimmetrica di SQL Server.
SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys WHERE name = '<new_ekm_key_name>';Verificare che le impronte digitali corrispondano.