PowerShell e interfaccia della riga di comando di Azure: Abilitare Transparent Data Encryption con una chiave di Azure Key Vault gestita dal cliente

Si applica a: pool SQL dedicati di Azure Synapse Analytics (in precedenza SQL Data Warehouse)

Tip

Microsoft Fabric Data Warehouse è un data warehouse relazionale su scala aziendale su una base data lake, con un'architettura futura, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con il data warehousing, iniziare con Fabric Data Warehouse. I carichi di lavoro esistenti del pool SQL dedicated possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Questo articolo spiega come utilizzare una chiave di Azure Key Vault per la crittografia trasparente dei dati (TDE) su 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.

Note

Questo articolo tratta i pool SQL dedicati standalone (precedentemente SQL DW).

  • Per i pool SQL dedicati di Azure Synapse Analytics (precedentemente SQL DW), impostare la protezione TDE a livello di server. Tutti i database criptati associati a quel server ereditano il protettore TDE.
  • Crittografa i dati in pool SQL dedicati e pool SQL serverless in uno spazio di lavoro Synapse utilizzando la chiave gestita dal cliente configurata a livello di workspace. Per ulteriori informazioni sulla crittografia dei dati trasparente per i pool SQL dedicati all'interno delle aree di lavoro di Synapse, consulta Crittografia di Azure Synapse Analytics.

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.
  • 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 di Controllo degli accessi in base al ruolo locale Utente della crittografia del servizio Crypto HSM gestito. 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

Note

Per le chiavi HSM gestite, usare Az.Sql 2.11.1 versione di PowerShell o versione successiva.

Note

La lunghezza combinata per il nome dell'insieme di credenziali delle chiavi non può superare 94 caratteri.

Tip

Uso di chiavi versionate di Azure Key Vault per TDE

Quando si imposta il protettore TDE, fai riferimento a una chiave di Azure Key Vault usando una versione specifica della chiave.

Example:

  • Identificatore di chiave che include una versione specifica

    https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>

# 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

  • PowerShell
  • interfaccia della riga di comando di Azure
  • 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>
    

Troubleshooting

  • Se non è possibile trovare il Key Vault, assicurati di essere nell'abbonamento giusto.

    • PowerShell
    • interfaccia della riga di comando di Azure
    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 le operazioni Ottieni, Esegui il wrapping della chiave, Annulla il wrapping della chiave.