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
Azure Synapse Analytics
Questo articolo illustra come usare una chiave di Azure Key Vault per Transparent Data Encryption (TDE) in un database SQL di Azure o Azure Synapse Analytics. 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 si ha bisogno di istruzioni per il portale di Azure su come abilitare TDE con una chiave gestita dal cliente da Azure Key Vault, vedere Creare un server configurato con identità gestita assegnata dall'utente e TDE gestito dal cliente.
Questo articolo si applica al database SQL di Azure, all'istanza gestita di SQL di Azure e ai pool SQL dedicati di Azure Synapse Analytics. 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.
Nota
Azure SQL supporta anche l'uso di una chiave RSA archiviata in un modulo di protezione hardware gestito come protezione TDE. HSM gestito di Azure è un servizio cloud completamente gestito, a disponibilità elevata, a tenant singolo e conforme agli standard che consente di proteggere le chiavi crittografiche per le applicazioni cloud, usando moduli di protezione hardware convalidati FIPS 140-2 livello 3. Altre informazioni sul HSM gestito.
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
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 protezione hardware (HSM) o una chiave locale già archiviati a scopo di creazione di una copia locale del materiale della chiave di protezione TDE.
- È necessario che sia installato e sia esecuzione Azure PowerShell.
- Creare le chiavi e un Azure Key Vault per l'uso con TDE.
-
Istruzioni per l'uso di un modulo di protezione hardware (HSM) e Azure Key Vault
- L'insieme di credenziali delle chiavi deve avere la seguente proprietà da usare per TDE:
- Eliminazione temporanea e Protezione dall'eliminazione
-
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, seguire le istruzioni per creare e attivare un modulo di protezione hardware gestito tramite l'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 si usa un server già esistente, usare quanto segue per aggiungere un'identità Microsoft Entra al server:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Se si crea un server, usare il cmdlet New-AzSqlServer con il tag -Identity 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 l'accesso al server all'insieme di credenziali delle chiavi prima di usare una chiave da quest'ultimo per TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Per aggiungere autorizzazioni al server in un modulo HSM gestito, aggiungere il ruolo locale Controllo degli accessi in base al ruolo "Utente di crittografia del servizio di crittografia del modulo di protezione hardware gestito" al server. Ciò consente al server di eseguire operazioni get, wrap key, unwrap key sulle chiavi nel modulo di protezione hardware gestito. Per altre informazioni, vedere gestione dei ruoli del modulo di protezione hardware gestito
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 per il nome dell'insieme di credenziali delle chiavi non può superare 94 caratteri.
Suggerimento
KeyId di esempio di Azure Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>
KeyId di esempio del modulo di HSM gestito:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# 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"
Il database o il data warehouse ha ora abilitato TDE con una chiave di crittografia in Azure Key Vault.
Controllare lo stato della crittografia e l'attività di crittografia
Usare Get-AzSqlDatabaseTransparentDataEncryption per ottenere lo stato di crittografia per un database o un data warehouse.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Cmdlet PowerShell utili
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 l'insieme di credenziali delle chiavi non viene trovato, verificare che sia attiva la sottoscrizione corretta.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Se non è possibile aggiungere la nuova chiave al server o non è possibile aggiornare la nuova chiave come protezione TDE, verificare quanto segue:
- La chiave non deve avere una data di scadenza.
- La chiave deve avere le operazioni Ottieni, Esegui il wrapping della chiave, Annulla il wrapping della chiave.
Contenuto correlato
- Informazioni su come eseguire la rotazione della protezione TDE di un server per soddisfare i requisiti di sicurezza: Rotate the Transparent Data Encryption protector Using PowerShell (Ruotare la protezione Transparent Data Encryption tramite PowerShell).
- Informazioni su come rimuovere una protezione TDE potenzialmente compromessa: Rimuovere una chiave potenzialmente compromessa.