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
- Ce guide suppose que vous disposez de deux locataires Microsoft Entra.
- La première se compose de la ressource Azure SQL Database, d’une application Microsoft Entra mutualisée 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 multilocataire et des autorisations RBAC nécessaires à la configuration des applications Microsoft Entra et d’Azure Key Vault, consultez 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 une CMK au niveau de la base de données sont les mêmes que celles requises pour une 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 interlocataire 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 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.
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.
Créez une identité managée attribuée par l'utilisateur.
Configurez l'identité managée utilisateur comme un identifiant d'identité fédérée pour l'application multilocataire.
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.
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>
Accédez au portail Azure>Microsoft Entra ID>Applications d’entreprise et recherchez l’application qui a été créée.
Si ce n’est déjà fait, créez un Azure Key Vault, puis créez une clé.
Créez ou définissez la stratégie d’accès.
- 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.
- 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.
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.
Accédez à Azure SQL Hub à aka.ms/azuresqlhub.
Dans le volet d’Azure SQL Database, sélectionnez Afficher les options.
Dans la fenêtre d’options d’Azure SQL Database , sélectionnez Créer une base de données SQL.
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.
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.
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.
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.
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.
Sélectionnez Appliquer pour continuer à créer la base de données.
Sélectionnez Suivant: Paramètres supplémentaires.
Sélectionnez Suivant : Balises.
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.
Sélectionnez Vérifier + créer.
Dans la page Vérifier + créer, après vérification, sélectionnez Créer.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
Créez une base de données configurée avec l’identité managée affectée par l’utilisateur et un chiffrement TDE géré par le client multilocataire en utilisant la commande az sql db create.
L’identificateur de clé du deuxième locataire peut être utilisé dans le champ encryption-protector.
L’ID d’application de l’application mutualisée peut être utilisé dans le federated-client-id champ. Le paramètre --encryption-protector-auto-rotation peut être utilisé pour activer la rotation automatique des clés au niveau de la base de données.
Pour obtenir votre ID de ressource d’identité managée affectée par l’utilisateur, recherchez Identités managées dans le portail Azure. Recherchez votre identité managée, puis accédez à Propriétés. Un exemple de votre ID de ressource UMI va se présenter comme ceci : /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
az sql db create --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --encryption-protector-auto-rotation True
Créez une base de données configurée avec l’identité managée affectée par l’utilisateur et un chiffrement TDE géré par le client multilocataire au niveau de la base de données en utilisant PowerShell.
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Utilisez la cmdlet New-AzSqlDatabase.
Remplacez les valeurs suivantes dans l’exemple :
-
<ResourceGroupName> : nom du groupe de ressources pour votre serveur logique Azure SQL
-
<DatabaseName> : utilisez un nom de base de données Azure SQL unique
-
<ServerName> : utilisez un nom de serveur logique Azure SQL unique
-
<UserAssignedIdentityId> : liste des identités managées affectées par l’utilisateur devant être affectées au serveur (une ou plusieurs)
-
<CustomerManagedKeyId> : Identificateur de clé du deuxième tenant Azure Key Vault
-
<FederatedClientId>: ID d’application de l’application mutualisée
-
-EncryptionProtectorAutoRotation : peut être utilisé pour activer la rotation automatique des clés au niveau de la base de données
Pour obtenir votre ID de ressource d’identité managée affectée par l’utilisateur, recherchez Identités managées dans le portail Azure. Recherchez votre identité managée, puis accédez à Propriétés. Un exemple de votre ID de ressource UMI va se présenter comme ceci : /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
# create a server with user-assigned managed identity and cross-tenant customer-managed TDE with automatic key rotation enabled
$params = @{
ResourceGroupName = '<ResourceGroupName>'
ServerName = '<ServerName>'
DatabaseName = '<DatabaseName>'
AssignIdentity = $true
UserAssignedIdentityId = '<UserAssignedIdentityId>'
EncryptionProtector = '<CustomerManagedKeyId>'
FederatedClientId = '<FederatedClientId>'
EncryptionProtectorAutoRotation = $true
}
New-AzSqlDatabase @params
Voici un exemple de modèle ARM qui crée une base de données Azure SQL avec une identité managée affectée par l’utilisateur et TDE géré par le client au niveau de la base de données. Pour une clé CMK interlocataire, utilisez l’identificateur de clé du deuxième locataire Azure Key Vault et l’ID d’application de l’application mutualisée.
Pour plus d’informations et de modèles ARM, consultez les modèles Azure Resource Manager pour Azure SQL Database.
Utilisez un déploiement personnalisé dans le portail Azure et créez votre propre modèle dans l’éditeur. Ensuite, enregistrez la configuration une fois que vous avez collé l’exemple.
Pour obtenir votre ID de ressource d’identité managée affectée par l’utilisateur, recherchez Identités managées dans le portail Azure. Recherchez votre identité managée, puis accédez à Propriétés. Un exemple de votre ID de ressource UMI va se présenter comme ceci : /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"location": {
"type": "String"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
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.
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.
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
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.
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.
Sélectionnez Enregistrer.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
Mettez à jour une base de données configurée avec l’identité managée affectée par l’utilisateur et un chiffrement TDE géré par le client multilocataire en utilisant la commande az sql db create.
L’identificateur de clé du deuxième locataire peut être utilisé dans le champ encryption-protector.
L’ID d’application de l’application mutualisée peut être utilisé dans le federated-client-id champ.
Pour obtenir votre ID de ressource d’identité managée affectée par l’utilisateur, recherchez Identités managées dans le portail Azure. Recherchez votre identité managée, puis accédez à Propriétés. Un exemple de votre ID de ressource UMI va se présenter comme ceci : /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. Le paramètre --encryption-protector-auto-rotation peut être utilisé pour activer la rotation automatique des clés au niveau de la base de données.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
La liste $keys est une liste de clés séparées par un espace qui doivent être ajoutées à la base de données, et $keysToRemove est une liste de clés séparées par un espace qui doivent être supprimées de la base de données
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
Mettez à jour une base de données configurée avec l’identité managée affectée par l’utilisateur et un chiffrement TDE géré par le client multilocataire au niveau de la base de données en utilisant PowerShell.
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Utilisez la cmdlet Set-AzSqlDatabase.
Remplacez les valeurs suivantes dans l’exemple :
-
<ResourceGroupName> : nom du groupe de ressources pour votre serveur logique Azure SQL
-
<DatabaseName> : utilisez un nom de base de données Azure SQL unique
-
<ServerName> : utilisez un nom de serveur logique Azure SQL unique
-
<UserAssignedIdentityId> : liste des identités managées affectées par l’utilisateur devant être affectées au serveur (une ou plusieurs)
-
<CustomerManagedKeyId> : Identificateur de clé du deuxième tenant Azure Key Vault
-
<FederatedClientId>: ID d’application de l’application mutualisée
-
<ListOfKeys> : liste séparée par des virgules des clés gérées par le client au niveau de la base de données, à ajouter à la base de données
-
<ListOfKeysToRemove> : liste séparée par des virgules des clés gérées par le client au niveau de la base de données, à supprimer de la base de données
-
-EncryptionProtectorAutoRotation : peut être utilisé pour activer la rotation automatique des clés au niveau de la base de données
Pour obtenir votre ID de ressource d’identité managée affectée par l’utilisateur, recherchez Identités managées dans le portail Azure. Recherchez votre identité managée, puis accédez à Propriétés. Un exemple de votre ID de ressource UMI va se présenter comme ceci : /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Voici un exemple de -KeyList et -KeysToRemove :
$keysToAdd = "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000","https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
$keysToRemove = "https://yourvault.vault.azure.net/keys/yourkey3/fd021f84a0d94d43b8ef33154bca0000"
Voici un exemple de modèle ARM qui met à jour une base de données Azure SQL avec une identité managée affectée par l’utilisateur et TDE géré par le client au niveau de la base de données. Pour une clé CMK interlocataire, utilisez l’identificateur de clé du deuxième locataire Azure Key Vault et l’ID d’application de l’application mutualisée.
Pour plus d’informations et de modèles ARM, consultez les modèles Azure Resource Manager pour Azure SQL Database.
Utilisez un déploiement personnalisé dans le portail Azure et créez votre propre modèle dans l’éditeur. Ensuite, enregistrez la configuration une fois que vous avez collé l’exemple.
Pour obtenir votre ID de ressource d’identité managée affectée par l’utilisateur, recherchez Identités managées dans le portail Azure. Recherchez votre identité managée, puis accédez à Propriétés. Un exemple de votre ID de ressource UMI va se présenter comme ceci : /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-a286-474d-b6f0-29c42ac74554/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Voici un exemple de paramètre encryption_protector et keys_to_add :
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Importante
Pour supprimer une clé de la base de données, la valeur du dictionnaire de clés d’une clé particulière doit être passée comme étant null. Par exemple : "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
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.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Utilisez la cmdlet Get-AzSqlDatabase.
# Retrieve the basic database level customer-managed key settings from a database
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName>
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter '2023-02-03 00:00:00'
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName> | Select DatabaseName, EncryptionProtector
Utilisez l’API REST 2022-08-01-preview pour Azure SQL Database.
Récupérer les paramètres de base de la clé gérée par le client au niveau de la base de données auprès d’une base de données.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Récupérer les paramètres de base de la clé gérée par le client au niveau de la base de données auprès d’une base de données et toutes les clés ajoutées jusqu’à présent
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Récupérer les paramètres de base de la clé gérée par le client au niveau de la base de données auprès d’une base de données et toutes les clés actuellement utilisées
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Récupérer les paramètres de base de la clé gérée par le client au niveau de la base de données auprès d’une base de données et les clés utilisées à un point dans le temps particulier
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('2023-02-04T01:57:42.49Z'))
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.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Utilisez l’API REST 2022-08-01-preview pour Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revalidate?api-version=2022-08-01-preview
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.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Utilisez l’API REST 2022-08-01-preview pour Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revert?api-version=2022-08-01-preview
Contenu connexe