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:Database SQL di Azure
Istanza gestita di SQL di Azure
Questo articolo mostra come utilizzare una chiave di Azure Key Vault per la crittografia trasparente dei dati (TDE) su database SQL di Azure. Per altre informazioni sull'integrazione di TDE con Azure Key Vault e sulla possibilità di usare chiavi personalizzate o BYOK (Bring Your Own Key), vedere TDE con chiavi gestite dal cliente in Azure Key Vault. Se vuoi istruzioni sul portale Azure su come abilitare TDE con una chiave gestita dal cliente da Azure Key Vault, consulta Crea server configurato con identità gestita assegnata dall'utente e TDE con chiave gestita dal cliente.
Nota
database SQL di Azure supporta sia chiavi asimmetriche (RSA) che simmetriche (AES) per la Transparent Data Encryption gestita dal cliente, a seconda della configurazione. Il supporto per le chiavi simmetriche (AES) è attualmente in anteprima pubblica ed è limitato a database SQL di Azure. Potresti vedere questa funzionalità apparire nel tempo a seconda della tua regione e dello stato di distribuzione del servizio. Per dettagli, vedi Transparent Data Encryption with customer-managed keys (BYOK).
Prerequisiti per PowerShell
- È necessario disporre di una sottoscrizione di Azure e avere il ruolo di amministratore di tale sottoscrizione.
- [Consigliata ma facoltativa] Disporre di un modulo di sicurezza hardware (HSM) o di un archivio locale delle chiavi per creare una copia locale del materiale della chiave TDE Protector.
- È necessario che sia installato e sia esecuzione Azure PowerShell.
- Creare un Azure Key Vault e una chiave da utilizzare con TDE.
-
Istruzioni per l'uso di un modulo di protezione hardware (HSM) e Azure Key Vault
- Il Key Vault deve avere la seguente proprietà specifica per essere utilizzato per TDE:
- Eliminazione logica e Protezione contro la cancellazione definitiva
-
Istruzioni per l'uso di un modulo di protezione hardware (HSM) e Azure Key Vault
- La chiave deve avere i seguenti attributi per essere usata per TDE:
- La data di attivazione (se impostata) deve essere una data/ora nel passato
- La data di scadenza (se impostata) deve essere una data/ora nel futuro
- La chiave deve avere lo stato Abilitato
- In grado di eseguire le operazioni Ottieni, Esegui il wrapping della chiave, Annulla il wrapping della chiave
- Per usare una chiave HSM gestita di Azure Key Vault, seguire le istruzioni per creare e attivare un modulo di protezione hardware gestito usando interfaccia della riga di comando di Azure
Per istruzioni sull'installazione del modulo Az PowerShell, vedere Installare Azure PowerShell.
Per informazioni specifiche su Azure Key Vault, vedere Le istruzioni di PowerShell di Azure Key Vault e Come usare l'eliminazione temporanea di Azure Key Vault con PowerShell.
Assegnare un'identità Microsoft Entra al server
Se hai già un server esistente, usa le seguenti istruzioni per aggiungere un'identità Microsoft Entra al tuo server:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Se stai creando un server, usa il cmdlet New-AzSqlServer con il -Identity tag per aggiungere un'identità Microsoft Entra durante la creazione del server:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Concedere le autorizzazioni di Azure Key Vault al server
Usare il cmdlet Set-AzKeyVaultAccessPolicy per concedere al server l'accesso all'insieme di credenziali prima di usare una chiave da esso per TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Per aggiungere autorizzazioni al server su un HSM gestito, aggiungi al server il ruolo RBAC locale Managed HSM Crypto Service Encryption User. Questo ruolo consente al server di eseguire get, wrap key, e unwrap key operazioni sulle chiavi nell'HSM gestito. Per altre informazioni, vedi gestione dei ruoli di Managed HSM.
Aggiungere la chiave di Azure Key Vault al server e impostare la protezione TDE
- Usare il cmdlet Get-AzKeyVaultKey per recuperare l'ID chiave da Key Vault.
- Usare il cmdlet Add-AzSqlServerKeyVaultKey per aggiungere la chiave da Azure Key Vault al server.
- Usare il cmdlet Set-AzSqlServerTransparentDataEncryptionProtector per impostare la chiave come protezione TDE per tutte le risorse del server.
- Usare il cmdlet Get-AzSqlServerTransparentDataEncryptionProtector per verificare che la protezione TDE sia stata configurata come previsto.
Nota
Per le chiavi HSM gestite, usare Az.Sql 2.11.1 versione di PowerShell o versione successiva.
Nota
La lunghezza combinata del nome dell'insieme di credenziali e del nome della chiave non può superare i 94 caratteri.
Suggerimento
Uso delle chiavi di Azure Key Vault versionate e non versionate per TDE
Quando si imposta il protettore TDE, puoi fare riferimento a una chiave Azure Key Vault usando una versione specifica della chiave o un identificatore di chiave senza versione.
In entrambi i casi, il database SQL di Azure risolve sempre e usa la versione abilitata più recente della chiave in Azure Key Vault o nel modulo di protezione hardware gestito di Azure Key Vault. Usare gli identificatori di chiave senza versione per evitare di incorporare una versione di chiave specifica nella configurazione della protezione TDE.
Gli identificatori di chiave senza versione sono attualmente supportati solo per il database SQL di Azure.
Esempi:
Identificatore di chiave che include una versione specifica
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Identificatore di chiave senza versione
https://<key-vault-name>.vault.azure.net/keys/<key-name>
# add the key from Azure Key Vault to the server
Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> `
-Type AzureKeyVault -KeyId <KeyVaultKeyId>
# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>
Attivare la crittografia TDE
Usare il cmdlet Set-AzSqlDatabaseTransparentDataEncryption per attivare TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Ora il database ha abilitato TDE con una chiave di crittografia in Azure Key Vault.
Controllare lo stato della crittografia e l'attività di crittografia
Usa il cmdlet Get-AzSqlDatabaseTransparentDataEncryption per ottenere lo stato di crittografia di un database.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Utili cmdlet di PowerShell
Usare il cmdlet Set-AzSqlDatabaseTransparentDataEncryption per disattivare TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"Usare il cmdlet Get-AzSqlServerKeyVaultKey per restituire l'elenco delle chiavi di Azure Key Vault aggiunte al server.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>Usare Remove-AzSqlServerKeyVaultKey per rimuovere una chiave di Azure Key Vault dal server.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Risoluzione dei problemi
Se non è possibile trovare il Key Vault, assicurati di essere nell'abbonamento giusto.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Se non puoi aggiungere la nuova chiave al server, o se non puoi aggiornare la nuova chiave come TDE Protector, verifica le seguenti condizioni:
- La chiave non dovrebbe avere una data di scadenza.
- La chiave deve avere abilitate le operazioni di get, wrapping della chiave e unwrapping della chiave.
TDE BYOK Azure Synapse Analytics
Per la documentazione TDE BYOK su Azure Synapse Analytics, consulta Azure Synapse Analytics SQL documentation. Per la documentazione su Transparent Data Encryption per pool SQL dedicati all'interno delle aree di lavoro di Synapse, vedere Crittografia di Azure Synapse Analytics.