Supprimer un protecteur Transparent Data Encryption (TDE) à l’aide de PowerShell

S’applique à : Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (pools SQL dédiés uniquement)

Cet article décrit les mesures à prendre en cas de protecteur TDE potentiellement compromis pour Azure SQL Database ou Azure Synapse Analytics qui utilise le chiffrement TDE avec prise en charge des clés gérées par le client dans Azure Key Vault – BYOK (Bring Your Own Key). Pour en savoir plus sur la prise en charge BYOK pour TDE, consultez la page de vue d’ensemble.

Attention

Les procédures décrites dans cet article doivent uniquement être effectuées dans les cas extrêmes ou dans des environnements de test. Examinez attentivement ces étapes, car la suppression des protecteurs TDE activement utilisés d’Azure Key Vault entraîne l’indisponibilité de la base de données.

Si vous suspectez qu’une clé est compromise, en cas d’accès non autorisé d’un utilisateur ou d’un service à cet clé, par exemple, nous vous recommandons de supprimer cette clé.

Gardez à l’esprit qu’une fois le protecteur TDE supprimé au sein de Key Vault, après un délai maximal de 10 minutes, toutes les bases de données chiffrées se mettent à refuser l’ensemble des connexions avec le message d’erreur correspondant, puis passent à l’état Inaccessible.

Ce guide pratique présente l’approche à adopter pour rendre les bases de données inaccessibles après une réponse à un incident de compromission.

Notes

Cet article s’applique à Azure SQL Database, Azure SQL Managed Instance et Azure Synapse Analytics (pools SQL dédiés (anciennement SQL DW)). Pour la documentation sur le chiffrement transparent des données pour les pools SQL dédiés à l’intérieur d’espaces de travail Synapse, consultez Chiffrement Azure Synapse Analytics.

Prérequis

  • Vous devez avoir un abonnement Azure et être un administrateur de cet abonnement.
  • Azure PowerShell doit être installé et en cours d’exécution.
  • Ce guide pratique part du principe que vous utilisez déjà une clé Azure Key Vault comme protecteur TDE pour Azure SQL Database ou Azure Synapse. Consultez Transparent Data Encryption with Bring Your Own Key support for Azure SQL Database and Data Warehouse (Transparent Data Encryption avec la prise en charge Bring Your Own Key pour Azure SQL Database et Data Warehouse) pour en savoir plus.

Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell. Pour des applets de commande spécifiques, consultez AzureRM.Sql. Utilisez le nouveau module Az Azure PowerShell.

Vérifier les empreintes du protecteur TDE

Les étapes suivantes indiquent comment vérifier que les empreintes du protecteur TDE sont toujours en cours d’utilisation par des fichiers journaux virtuels d’une base de données spécifique. Pour trouver l’empreinte du protecteur TDE actuel de la base de données et l’ID de base de données, exécutez la commande suivante :

SELECT [database_id],
       [encryption_state],
       [encryptor_type], /*asymmetric key means AKV, certificate means service-managed keys*/
       [encryptor_thumbprint]
 FROM [sys].[dm_database_encryption_keys]

La requête suivante retourne les fichiers journaux virtuels et les empreintes respectives du protecteur TDE en cours d’utilisation. Chaque empreinte différente fait référence à une autre clé dans Azure Key Vault (AKV) :

SELECT * FROM sys.dm_db_log_info (database_id)

Vous pouvez également utiliser PowerShell ou Azure CLI :

La commande PowerShell Get-AzureRmSqlServerKeyVaultKey fournit l’empreinte du protecteur TDE utilisé dans la requête. Vous pouvez ainsi voir quelles clés conserver et supprimer dans AKV. Seules les clés qui ne sont plus utilisées par la base de données peuvent être supprimées de façon sécurisée d’Azure Key Vault.

Garder les ressources chiffrées accessibles

  1. Créez une clé dans Key Vault. Assurez-vous que cette clé est créée dans un coffre de clés distinct à partir du protecteur TDE potentiellement compromis, étant donné que le contrôle d’accès est configuré au niveau du coffre.

  2. Ajoutez la nouvelle clé au serveur en utilisant les cmdlets Add-AzSqlServerKeyVaultKey et Set-AzSqlServerTransparentDataEncryptionProtector et mettez-la à jour en tant que nouveau protecteur TDE du serveur.

    # add the key from 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>
    
  3. Assurez-vous que le serveur et tous les réplicas ont été mis à jour pour le nouveau protecteur TDE à l’aide de la cmdlet Get-AzSqlServerTransparentDataEncryptionProtector.

    Remarque

    La propagation du nouveau protecteur TDE vers l’ensemble des bases de données et bases de données secondaires du serveur peut prendre quelques minutes.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Faites une sauvegarde de la nouvelle clé dans Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Supprimez la clé compromise de Key Vault à l’aide de la cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Pour restaurer ultérieurement une clé dans Key Vault à l’aide de la cmdlet Restore-AzKeyVaultKey.

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

Rendre les ressources chiffrées inaccessibles

  1. Supprimez les bases de données chiffrées avec la clé potentiellement compromise.

    Les bases de données et les fichiers journaux étant automatiquement sauvegardés, une restauration dans le temps peut donc être effectuée à tout moment (à condition que vous fournissiez la clé). Les bases de données doivent être supprimées avant de supprimer un protecteur TDE actif pour empêcher une perte de données éventuelle de 10 minutes des transactions les plus récentes.

  2. Sauvegardez l’élément de clé du protecteur TDE dans Key Vault.

  3. Supprimez la clé potentiellement compromise de Key Vault.

Remarque

Les changements d’autorisation peuvent prendre environ 10 minutes avant d’être pris en compte dans le coffre de clés. Cela inclut la révocation des autorisations d’accès dans le protecteur TDE dans AKV. Du coup, les utilisateurs dans ce laps de temps peuvent toujours avoir des autorisations d’accès.