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

S’applique à Azure SQL Database

Remarque

  • La CMK TDE au niveau de la base de données est disponible pour Azure SQL Database (toutes les éditions de SQL Database). Elle n’est pas disponible pour Azure SQL Managed Instance, pour SQL Server local, pour les machines virtuelles Azure et pour Azure Synapse Analytics (pools SQL dédiés (anciennement SQL DW)).
  • Le même guide peut être appliqué pour configurer des clés gérées par le client au niveau de la base de données dans le même locataire en excluant le paramètre d’ID de client fédéré. Pour plus d’informations sur les clés gérées par le client au niveau de la base de données, consultez Transparent Data Encryption (TDE) avec des clés gérées par le client au niveau de la base de données.

Dans ce guide, nous allons suivre les étapes de création, de mise à jour et de récupération d’une base de données Azure SQL avec Transparent Data Encryption (TDE) et des clés gérées par le client (CMK) au niveau de la base de données, en utilisant une identité managée affectée par l’utilisateur pour accéder à Azure Key Vault. Azure Key Vault se trouve dans un locataire Microsoft Entra différent de celui d’Azure SQL Database. Pour plus d’informations, consultez Clés gérées par le client multilocataires avec Transparent Data Encryption.

Remarque

Microsoft Entra ID était anciennement appelé Azure Active Directory (Azure AD).

Prérequis

  • Ce guide suppose que vous avez deux locataires Microsoft Entra.
    • Le premier se compose de la ressource Azure SQL Database, d’une application Microsoft Entra multilocataire et d’une identité managée affectée par l’utilisateur.
    • Le deuxième locataire héberge le coffre de clés Azure.
  • Pour obtenir des instructions complètes sur la configuration de la clé CMK inter-locataire et des autorisations RBAC nécessaires à la configuration des applications Microsoft Entra et d’Azure Key Vault, consultez l’un des guides suivants :
  • Azure CLI version 2.52.0 ou ultérieure.
  • Module Az PowerShell version 10.3.0 ou supérieure.
  • Les autorisations RBAC nécessaires pour la CMK au niveau de la base de données sont les mêmes que celles requises pour la CMK au niveau du serveur. Plus précisément, les mêmes autorisations RBAC applicables lors de l’utilisation d’Azure Key Vault, d’identités managées et de CMK inter-locataire pour TDE au niveau du serveur sont applicables au niveau de la base de données. Pour plus d’informations sur la gestion des clés et la stratégie d’accès, consultez Gestion des clés.

Ressources nécessaires sur le premier locataire

Dans le cadre de ce tutoriel, nous allons supposer que le premier locataire appartient à un fournisseur de logiciels indépendant (ISV) et que le deuxième locataire provient de son client. Pour plus d’informations sur ce scénario, consultez Clés gérées par le client multilocataires avec Transparent Data Encryption.

Avant de pouvoir configurer TDE pour Azure SQL Database avec une clé CMK inter-locataire, nous devons disposer d’une application Microsoft Entra multilocataire configurée avec une identité managée affectée par l’utilisateur, affectée en tant qu’informations d’identification de l’identité fédérée pour l’application. Suivez un des guides dans les prérequis.

  1. Dans le premier locataire où vous voulez créer l’Azure SQL Database, créez et configurez une application Microsoft Entra multilocataire.

  2. Créer une identité managée attribuée par l’utilisateur.

  3. Configurez l’identité managée affectée par l’utilisateur en tant qu’informations d’identification d’identité fédérée pour l’application multilocataire.

  4. Prenez note du nom et l’ID de l’application. Vous pouvez les trouver dans le Portail Azure>Microsoft Entra ID>les applications d’entreprise et en recherchant l’application créée.

Ressources nécessaires sur le second locataire

Remarque

Les modules Azure AD et MSOnline PowerShell sont dépréciés depuis le 30 mars 2024. Pour en savoir plus, lisez les informations de dépréciation. Passé cette date, la prise en charge de ces modules est limitée à une assistance de migration vers le SDK et les correctifs de sécurité Microsoft Graph PowerShell. Les modules déconseillés continueront de fonctionner jusqu’au 30 mars 2025.

Nous vous recommandons de migrer vers Microsoft Graph PowerShell pour interagir avec Microsoft Entra ID (anciennement Azure AD). Pour explorer les questions courantes sur la migration, reportez-vous au FAQ sur la migration. Remarque : Les versions 1.0.x de MSOnline peuvent connaître une interruption après le 30 juin 2024.

  1. Sur le second locataire, où se trouve le coffre de clés Azure, créez un principal de service (application) en utilisant l’ID d’application de l’application inscrite du premier locataire. Voici quelques exemples de la façon d’inscrire l’application multilocataire. Remplacez <TenantID> et <ApplicationID> respectivement par l’ID de locataire de Microsoft Entra ID et par l’ID d’application de l’application multilocataire :

    • PowerShell :

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Interface de ligne de commande Azure :

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Allez sur le Portail Azure>Microsoft Entra ID>les applications d’entreprise et recherchez l’application qui a été créée.

  3. Si ce n’est déjà fait, créez un Azure Key Vault, puis créez une clé.

  4. Créez ou définissez la stratégie d’accès.

    1. Sélectionnez les autorisations Obtenir, Inclure la clé et Ne pas inclure la clé sous Autorisations de clé pendant la création de la stratégie d’accès.
    2. Sélectionnez l’application multilocataire créée à la première étape de l’option Principal pendant la création de la stratégie d’accès.

    Capture d’écran du menu de stratégie d’accès d’un coffre de clés dans le portail Azure.

  5. Une fois que la stratégie d’accès et la clé ont été créées, récupérez la clé auprès de Key Vault et prenez note de l’identificateur de clé.

Créer une base de données Azure SQL avec des clés gérées par le client au niveau de la base de données

Voici des exemples de création d’une base de données sur Azure SQL Database avec une identité managée affectée par l’utilisateur, et de la façon de définir une clé gérée par le client interlocataire au niveau de la base de données. L’identité managée affectée par l’utilisateur est nécessaire pour configurer une clé gérée par le client pour Transparent Data Encryption lors de la phase de création de la base de données.

  1. Accédez à la page Sélectionner l’option de déploiement SQL dans le portail Azure.

  2. Si vous n’êtes pas déjà connecté au portail Azure, connectez-vous lorsque vous y êtes invité.

  3. Sous Bases de données SQL, laissez Type de ressource défini sur Base de données unique, puis sélectionnez Créer.

  4. Sous l’onglet De base du formulaire Créer une base de données SQL, sous Détails du projet, sélectionnez l’Abonnement Azure souhaité,le groupe de ressources et le serveur pour votre base de données. Ensuite, utilisez un nom unique pour le nom de votre base de données. Si vous n’avez pas créé de serveur logique pour Azure SQL Database, consultez Créer un serveur configuré avec TDE avec une clé gérée par le client (CMK) interlocataire pour plus d’informations.

  5. Lorsque vous accédez à l’onglet Sécurité , sélectionnez Configurer le chiffrement transparent des données.

    Capture d'écran du Portail Azure et du menu Sécurité lors de la création d'une Azure SQL.Database.

  6. Dans le menu Transparent Data Encryption, sélectionnez Clé gérée par le client (CMK) au niveau de la base de données.

    Capture d’écran de la page du portail Azure pour activer le chiffrement transparent des données.

  7. Pour Identité managée affectée par l’utilisateur, sélectionnez Configurer pour autoriser une identité de base de données et Ajouter une identité managée affectée par l’utilisateur à la ressource si l’identité souhaitée n’est pas listée dans le menu Identité. Ensuite, sélectionnez Appliquer.

    Capture d’écran du menu Identité du Portail Azure.

    Notes

    Vous pouvez configurer l’identité cliente fédérée ici si vous configurez la clé CMK interlocataire pour TDE.

  8. Dans le menu Transparent Data Encryption, sélectionnez Modifier la clé. Sélectionnez les valeurs de votre choix pour Abonnement, Coffre de clés, Clé et Version pour la clé gérée par le client à utiliser pour le TDE. Sélectionnez le bouton Sélectionner. Après avoir sélectionné une clé, vous pouvez également ajouter des clés de base de données supplémentaires si nécessaire à l’aide de l’URI (identificateur d’objet) de Azure Key vault dans le menu Transparent Data Encryption.

    La rotation automatique des clés peut également être activée au niveau de la base de données à l’aide de la case à cocher rotation automatique des clés dans le menu Transparent Data Encryption.

    Capture d'écran du menu de chiffrement transparent des données dans le portail Azure faisant référence à l'ajout de clés supplémentaires.

  9. Sélectionnez Appliquer pour continuer à créer la base de données.

  10. Au bas de la page, sélectionnez Vérifier + créer

  11. Dans la page Vérifier + créer, après vérification, sélectionnez Créer.

Notes

La création de la base de données échoue si l’identité managée affectée par l’utilisateur n’a pas les autorisations appropriées activées sur le coffre de clés. L’identité managée affectée par l’utilisateur aura besoin des autorisations Get, wrapKey et unwrapKey sur le coffre de clés. Pour plus d’informations, consultez Identités managées pour le chiffrement transparent des données avec une clé gérée par le client.

Mettre à jour une base de données Azure SQL existante avec des clés gérées par le client au niveau de la base de données

Voici des exemples de mise à jour d’une base de données existante sur Azure SQL Database avec une identité managée affectée par l’utilisateur, et de la façon de définir une clé gérée par le client interlocataire au niveau de la base de données. L’identité managée affectée par l’utilisateur est nécessaire pour configurer une clé gérée par le client pour Transparent Data Encryption lors de la phase de création de la base de données.

  1. Dans le Portail Azure, accédez à la ressource de base de données SQL que vous souhaitez mettre à jour avec une clé gérée par le client au niveau de la base de données.

  2. Sous Sécurité, sélectionnez Identité. Ajoutez une identité managée affectée par l’utilisateur pour cette base de données, puis sélectionnez Enregistrer

  3. Accédez maintenant au menu Chiffrement des données sous Sécurité pour votre base de données. Sélectionnez Clé gérée par le client (CMK) au niveau de la base de données. L’identité de base de données pour la base de données doit déjà être Activée, car vous avez configuré l’identité à la dernière étape.

  4. Sélectionnez Changer la clé. Sélectionnez les valeurs de votre choix pour Abonnement, Coffre de clés, Clé et Version pour la clé gérée par le client à utiliser pour le TDE. Sélectionnez le bouton Sélectionner. Après avoir sélectionné une clé, vous pouvez également ajouter des clés de base de données supplémentaires si nécessaire à l’aide de l’URI (identificateur d’objet) de Azure Key vault dans le menu Chiffrement des données.

    Cochez la case rotation automatique des clés si vous souhaitez activer la rotation automatique des clés au niveau de la base de données.

    Capture d’écran de la page du portail Azure pour activer le chiffrement transparent des données lors de la mise à jour d'une base de données existante.

  5. Sélectionnez Enregistrer.

Visualiser les paramètres de clé gérée par le client au niveau de la base de données sur une base de données Azure SQL

Voici des exemples de récupération des clés gérées par le client au niveau de la base de données pour une base de données. Par défaut, la ressource ARM Microsoft.Sql/servers/databases montre seulement le protecteur TDE et l’identité managée configurés sur la base de données. Pour développer la liste complète des clés, utilisez le paramètre -ExpandKeyList. En outre, des filtres comme -KeysFilter "current" et une valeur de point dans le temps (par exemple 2023-01-01) peuvent être utilisés pour récupérer les clés actuelles utilisées et les clés utilisées dans le passé à un point dans le temps spécifique. Ces filtres sont pris en charge seulement pour les requêtes de base de données individuelles et non pas pour les requêtes au niveau du serveur.

Pour afficher les clés gérées par le client au niveau de la base de données dans le Portail Azure, accédez au menu Chiffrement des données de la ressource SQL Database.

Lister toutes les clés d’un serveur logique

Pour extraire la liste de toutes les clés (et pas seulement le protecteur principal) utilisées par chaque base de données sous le serveur, elle doit être interrogée individuellement avec les filtres de clé. Voici un exemple de requête PowerShell pour lister chaque clé sous le serveur logique.

Utilisez la cmdlet Get-AzSqlDatabase.

$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}

Revalider la clé gérée par le client au niveau de la base de données sur une base de données Azure SQL

Dans le cas d’un protecteur TDE inaccessible, comme décrit dans Transparent Data Encryption (TDE) avec CMK, une fois l’accès à la clé corrigé, une opération de revalidation de clé peut être utilisée pour rendre la base de données accessible. Consultez les instructions ou commandes suivantes pour obtenir des exemples.

À l’aide du Portail Azure, recherchez votre ressource de base de données SQL. Une fois que vous avez sélectionné votre ressource SQL Database, accédez à l’onglet Transparent Data Encryption du menu Chiffrement de données sous les paramètres de Sécurité. Si la base de données a perdu l’accès à Azure Key Vault, un bouton Revalider la clé s’affiche et vous aurez la possibilité de revalider la clé existante en sélectionnant Réessayer la clé existante, ou une autre clé en sélectionnant Sélectionner la clé de sauvegarde.

Rétablir la clé gérée par le client au niveau de la base de données sur une base de données Azure SQL

Une base de données configurée avec CMK au niveau de la base de données peut être ramenée au chiffrement au niveau du serveur si le serveur est configuré avec une clé gérée par le service en utilisant les commandes suivantes.

Pour rétablir le paramètre de clé gérée par le client au niveau de la base de données à la clé de chiffrement au niveau du serveur dans le Portail Azure, accédez à l’onglet Transparent Data Encryption du menu Chiffrement de données de la ressource SQL Database. Sélectionnez Clé de chiffrement au niveau du serveur , puis Enregistrer pour enregistrer les paramètres.

Notes

Pour utiliser le paramètre de clé de chiffrement au niveau du serveur pour des bases de données individuelles, le serveur logique de la base de données Azure SQL Database doit être configuré pour utiliser la clé gérée par le service pour TDE.

Étapes suivantes

Consultez la documentation suivante sur les différentes opérations de CMK au niveau de la base de données :