Partager via


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

Note

  • Le niveau de base de données TDE CMK est disponible pour Azure SQL Database (toutes les éditions SQL Database). Il n’est pas disponible pour Azure SQL Managed Instance, SQL Server local, machines virtuelles Azure et 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.

Note

Microsoft Entra ID était précédemment connu sous le nom d'Azure Active Directory (Azure AD).

Prerequisites

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 CMK inter-locataires, nous devons disposer d’une application Microsoft Entra multitenant configurée avec une identité gérée attribuée par l’utilisateur et définie comme informations d’identification d’identité fédérée pour l’application. Suivez un des guides dans les prérequis.

  1. Sur le premier locataire, où vous voulez créer la base de données Azure SQL, créez et configurez une application Microsoft Entra multilocataire.

  2. Créez une identité managée attribuée par l'utilisateur.

  3. Configurez l'identité managée utilisateur comme un identifiant 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 en accédant au portail Azure>Microsoft Entra ID>Applications d’entreprise et en recherchant l’application créée.

Ressources nécessaires sur le second locataire

Note

Les modules PowerShell Azure AD et MSOnline seront obsolètes à compter du 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 obsolètes 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 toutes questions liées à la migration, consultez la 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 illustrant comment enregistrer l’application multitenant. Remplacez <TenantID> et <ApplicationID> par l’ID client de Microsoft Entra ID et l’ID d’application de l’application multi-locataires, respectivement :

    • PowerShell :

      Connect-Entra -TenantID <TenantID>
      New-EntraServicePrincipal  -AppId <ApplicationID>
      
    • L'interface de ligne de commande Azure :

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Accédez au portail Azure>Microsoft Entra ID>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 mutualisée créée à la première étape de l’option Principal lors de la création de la stratégie d’accès.

    Capture d’écran du menu stratégie d’accès d’Azure Key Vault dans le portail Azure.

  5. Une fois la stratégie d’accès et la clé créées, récupérez la clé à partir d’Azure Key Vault et enregistrez 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 à Azure SQL Hub à aka.ms/azuresqlhub.

  2. Dans le volet d’Azure SQL Database, sélectionnez Afficher les options.

  3. Dans la fenêtre d’options d’Azure SQL Database , sélectionnez Créer une base de données SQL.

    Capture d’écran du portail Azure montrant le hub Azure SQL, le bouton Afficher les options et le bouton Créer une base de données SQL.

  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 pour la clé de niveau base de 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 Chiffrement transparent des données, 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.

    Note

    Vous pouvez configurer l’identité client fédérée ici si vous configurez CMK multilocataire pour TDE.

  8. Dans le menu Chiffrement transparent des données, 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) du coffre de clés Azure dans le menu Chiffrement transparent des données.

    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 de la clé dans le menu Chiffrement transparent des données.

    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. Sélectionnez Suivant: Paramètres supplémentaires.

  11. Sélectionnez Suivant : Balises.

  12. Envisagez d'utiliser les balises Azure. Par exemple, la balise « Owner » ou « CreatedBy » pour identifier qui a créé la ressource et la balise Environnement pour identifier si cette ressource est en production, développement, etc. Pour plus d’informations, consultez Développer votre stratégie de nommage et d’étiquetage pour les ressources Azure.

  13. Sélectionnez Vérifier + créer.

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

Note

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) du coffre de clés Azure dans le menu Chiffrement des données.

    Activez la case à cocher Rotation automatique de la clé 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 de la base de données SQL.

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

En cas de protecteur TDE inaccessible, comme décrit dans Azure SQL Transparent Data Encryption avec une clé gérée par le client, une fois l’accès à la clé corrigé, une opération de clé revalidée 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 de la base de données SQL, accédez à l’onglet Chiffrement transparent des données du menu Chiffrement de données sous les paramètres 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 Chiffrement transparent des données du menu Chiffrement de données de la ressource de la base de données SQL. Sélectionnez Clé de chiffrement au niveau du serveur , puis Enregistrer pour enregistrer les paramètres.

Note

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.