Opérer la rotation du protecteur Transparent Data Encryption (TDE)

S’applique à :Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (pool SQL dédié uniquement)

Cet article décrit la rotation des clés pour un serveur à l’aide d’un protecteur TDE d’Azure Key Vault. La rotation du protecteur TDE logique pour un serveur désigne le passage à une nouvelle clé asymétrique qui protège les bases de données sur le serveur. La rotation des clés est une opération en ligne et ne doit prendre que quelques secondes, car elle ne déchiffre et rechiffre que la clé de chiffrement des données de la base de données, et non la base de données entière.

Cet article décrit les méthodes automatisées et manuelles pour opérer la rotation du TDE sur le serveur.

Aspects importants à prendre en considération lors de la rotation du protecteur TDE

  • Lorsque le protecteur TDE fait l’objet d’une modification ou d’une rotation, les anciennes sauvegardes de la base de données, y compris les fichiers journaux sauvegardés, ne sont pas mises à jour pour l’utiliser le dernier protecteur TDE. Pour restaurer une sauvegarde chiffrée avec un protecteur TDE de Key Vault, assurez-vous que le matériel de clé est toujours est disponible pour le serveur cible. Par conséquent, nous vous recommandons de conserver toutes les anciennes versions du protecteur TDE dans Azure Key Vault (AKV), afin que toutes les sauvegardes de base de données puissent être restaurées.
  • Même lors du passage d’une clé gérée par le client (CMK) à une clé gérée par le service, conservez toutes les clés précédemment utilisées dans AKV. Cela garantit la restauration possible des sauvegardes de base de données, y compris les fichiers journaux de sauvegardes, avec les protecteurs TDE stockés dans AKV.
  • Hormis les anciennes sauvegardes, les fichiers journaux de transactions peuvent également nécessiter l’accès à l’ancien protecteur TDE. Pour déterminer s’il existe des journaux restants qui requièrent toujours l’ancienne clé, après avoir effectué la rotation des clés, utilisez la vue de gestion dynamique (DMV) sys.dm_db_log_info. Cette DMV retourne des informations sur le fichier journal virtuel (VLF) du journal de transactions avec son empreinte numérique de clé de chiffrement du VLF.
  • Les anciennes clés doivent être conservées dans AKV et disponibles sur le serveur en fonction de la période de rétention de sauvegarde configurée comme fond des stratégies de rétention de sauvegarde sur la base de données. Cela permet de garantir que toutes les sauvegardes de rétention à long terme (LTR) sur le serveur peuvent toujours être restaurées à l’aide des clés plus anciennes.

Notes

Un pool SQL dédié mis en pause dans Azure Synapse Analytics doit reprendre avant les rotations de clés.

Cet article s’applique aux pools SQL dédiés (anciennement SQL DW) Azure SQL Database, Azure SQL Managed Instance et Azure Synapse Analytics. Pour accéder à de la documentation sur TDE pour les pools SQL dédiés à l’intérieur d’espaces de travail Synapse, consultez Chiffrement Azure Synapse Analytics.

Important

Ne supprimez pas les versions précédentes de la clé après une substitution. Lorsque les clés sont substituées, certaines données sont toujours chiffrées avec les clés précédentes, comme les anciennes sauvegardes de base de données, les fichiers journaux de sauvegardes et de transactions.

Prérequis

  • 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 Analytics. Consultez Transparent Data Encryption avec prise en charge de BYOK.
  • Azure PowerShell doit être installé et en cours d’exécution.

Conseil

Recommandé mais facultatif - Commencez par créer le matériel de clé pour le protecteur TDE dans un module de sécurité matériel (HSM) ou le magasin de clés local, puis importez le matériel de clé dans Azure Key Vault. Suivez le instructions sur l’utilisation d’un module de sécurité matériel (HSM) et Key Vault pour en savoir plus.

Accédez au Portail Azure.

Rotation des clés automatique

La rotation automatique du protecteur TDE peut être activée lors de la configuration du protecteur TDE pour le serveur ou la base de données, à partir du portail Azure ou en utilisant les commandes PowerShell ou Azure CLI ci-dessous. Quand elle est activée, le serveur ou la base de données vérifie en permanence le coffre de clés pour toute nouvelle version de la clé utilisée comme protecteur TDE. Si une nouvelle version de la clé est détectée, le protecteur TDE sur le serveur ou la base de données fait automatiquement l’objet d’une rotation vers la dernière version de la clé dans les 24 heures.

Une rotation automatique dans un serveur, une base de données ou une Managed Instance peut être utilisée avec une rotation des clés automatique dans Azure Key Vault pour permettre une rotation sans contact de bout en bout des clés TDE.

Remarque

Si la géoréplication est configurée pour le serveur ou l’instance gérée, avant d’activer la rotation automatique, il convient de suivre certaines directives supplémentaires décrites ici.

À l’aide du Portail Azure :

  1. Accédez à la section Transparent Data Encryption pour un serveur existant ou une instance managée.
  2. Sélectionnez l’option Clé gérée par le client, puis choisissez le coffre de clés et la clé à utiliser comme protecteur TDE.
  3. Activez la case à cocher Rotation automatique de la clé.
  4. Sélectionnez Enregistrer.

Screenshot of auto rotate key configuration for Transparent data encryption.

Rotation automatique des clés au niveau de la base de données

La rotation automatique des clés peut également être activée au niveau de la base de données pour Azure SQL Database. Cela est utile lorsque vous souhaitez activer la rotation automatique des clés pour une seule base de données ou un sous-ensemble de bases de données sur un serveur. Pour plus d’informations, consultez Gestion des identités et des clés pour TDE avec des clés gérées par le client au niveau de la base de données.

Pour des informations concernant le Portail Azure et la configuration de la rotation automatique des clés au niveau de la base de données, consultez Mettre à jour une Azure SQL Database existante avec des clés gérées par le client au niveau de la base de données.

Rotation automatique des clés pour les configurations de géoréplication

Dans une configuration de géoréplication Azure SQL Database où le serveur principal est configuré pour utiliser TDE avec CMK, le serveur secondaire doit également être configuré pour activer TDE avec CMK avec la même clé que celle utilisée sur le serveur principal.

À l’aide du Portail Azure :

  1. Accédez à la section Transparent Data Encryption du serveur principal.

  2. Sélectionnez l’option Clé gérée par le client, puis choisissez le coffre de clés et la clé à utiliser comme protecteur TDE.

  3. Activez la case à cocher Rotation automatique de la clé.

  4. Sélectionnez Enregistrer.

    Screenshot of auto rotate key configuration for transparent data encryption in a geo-replication scenario on the primary server.

  5. Accédez à la section Transparent Data Encryption du serveur secondaire.

  6. Sélectionnez l’option Clé gérée par le client, puis choisissez le coffre de clés et la clé à utiliser comme protecteur TDE. Utilisez la même clé que celle utilisée pour le serveur principal.

  7. Décochez Faire de cette clé le protecteur TDE par défaut.

  8. Sélectionnez Enregistrer.

    Screenshot of auto rotate key configuration for transparent data encryption in a geo-replication scenario on the secondary server.

Lorsque la clé est changée par rotation sur le serveur principal, elle est automatiquement transférée vers le serveur secondaire.

Utiliser des clés différentes pour chaque serveur

Il est possible de configurer les serveurs principal et secondaire avec une clé de coffre de clés différente lors de la configuration de TDE avec CMK dans le portail Azure. Il n’est pas obligatoire que, dans le portail Azure, la clé utilisée pour protéger le serveur principal soit également celle qui protège la base de données primaire ayant été répliquée sur le serveur secondaire. Vous pouvez utiliser PowerShell, Azure CLI ou les API REST pour obtenir des détails sur les clés utilisées sur le serveur. Cela montre que les clés utilisées après la rotation automatique sont transférées du serveur principal vers le serveur secondaire.

Voici un exemple d’utilisation des commandes PowerShell pour examiner les clés qui sont transférées du serveur principal vers le serveur secondaire après la rotation des clés.

  1. Exécutez la commande suivante sur le serveur principal pour afficher les détails des clés d’un serveur :

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  2. Vous devez obtenir des résultats similaires à ceux-ci :

    ResourceGroupName : <SQLDatabaseResourceGroupName> 
    ServerName        : <logicalServerName> 
    ServerKeyName     : <keyVaultKeyName> 
    Type              : AzureKeyVault 
    Uri               : https://<keyvaultname>.vault.azure.net/keys/<keyName>/<GUID> 
    Thumbprint        : <thumbprint> 
    CreationDate      : 12/13/2022 8:56:32 PM
    
  3. Exécutez la même commande Get-AzSqlServerKeyVaultKey sur le serveur secondaire :

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  4. Si le serveur secondaire a un protecteur TDE par défaut qui utilise une clé différente de celle du serveur principal, vous voyez normalement au moins deux clés. La première clé est le protecteur TDE par défaut, et la deuxième clé est la clé utilisée sur le serveur principal pour protéger la base de données répliquée.

  5. Lorsque la clé est changée par rotation sur le serveur principal, elle est automatiquement transférée vers le serveur secondaire. Si vous réexécutez la commande Get-AzSqlServerKeyVaultKey sur le serveur principal, vous voyez deux clés. La première clé est la clé d’origine. La deuxième clé est la clé actuellement utilisée qui a été générée par le processus de rotation des clés.

  6. L’exécution de la commande Get-AzSqlServerKeyVaultKey sur le serveur secondaire doit également afficher les mêmes clés que celles utilisées sur le serveur principal. Cela confirme le fait que les clés, après leur rotation sur le serveur principal, sont automatiquement transférées vers le serveur secondaire et utilisées pour protéger la base de données répliquée.

Rotation des clés manuelle

La rotation des clés manuelle utilise les commandes suivantes pour ajouter une nouvelle clé, sous un nouveau nom de clé voire dans un autre coffre de clés. L’utilisation de cette approche prend en charge l’ajout de la même clé à différents coffres de clés afin de prendre en charge les scénarios de haute disponibilité et de géo-reprise. La rotation des clés manuelle peut également être opérée à l’aide du portail Azure.

Avec une rotation des clés manuelle, quand une nouvelle version de clé est générée dans le coffre de clés (manuellement ou via une stratégie de rotation des clés automatique dans le coffre de clés), elle doit être définie manuellement en tant que protecteur TDE sur le serveur.

Notes

La longueur combinée du nom du coffre de clés et du nom de la clé ne peut pas dépasser 94 caractères.

À l’aide du portail Azure :

  1. Accédez au menu Transparent Data Encryption pour un serveur existant ou une instance managée.
  2. Sélectionnez l’option Clé gérée par le client, puis choisissez le coffre de clés et la clé à utiliser comme nouveau protecteur TDE.
  3. Sélectionnez Enregistrer.

Screenshot of manually rotate key configuration for Transparent data encryption.

Basculer le mode du protecteur TDE

En utilisant le portail Azure pour basculer le protecteur TDE du mode géré par Microsoft au mode BYOK :

  1. Accédez au menu Transparent Data Encryption pour un serveur existant ou une instance managée.
  2. Sélectionnez l’option Clé gérée par le client.
  3. Sélectionnez le coffre de clés et la clé à utiliser comme protecteur TDE.
  4. Sélectionnez Enregistrer.