Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Azure SQL Database
Azure SQL Managed Instance
Cet article montre comment utiliser une clé d’Azure Key Vault pour le chiffrement transparent des données (TDE) sur Azure SQL Database. Pour en savoir plus sur TDE avec intégration Azure Key Vault - Prise en charge de BYOK (Bring Your Own Key), consultez TDE avec clés managées dans Azure Key Vault. Si vous souhaitez des instructions du portail Azure sur la manière d’activer le TDE avec une clé gérée par le client depuis Azure Key Vault, consultez Créer un serveur configuré avec une identité managée assignée par l’utilisateur et le TDE avec une clé gérée par le client.
Note
Azure SQL Database prend en charge à la fois les clés asymétriques (RSA) et symétriques (AES) pour le Transparent Data Encryption géré par le client, selon la configuration. La prise en charge des clés symétriques (AES) est actuellement en préversion publique et est limitée à Azure SQL Database. Vous pourriez voir cette fonctionnalité apparaître avec le temps selon votre région et le statut de déploiement de votre service. Pour plus de détails, voir Transparent Data Encryption avec des clés gérées par le client (BYOK).
Prérequis pour PowerShell
- Vous devez avoir un abonnement Azure et être un administrateur de cet abonnement.
- [Recommandé mais facultatif] Avoir un module de sécurité matériel (HSM) ou un magasin de clés local pour créer une copie locale de l’élément de clé du protecteur TDE.
- Azure PowerShell doit être installé et en cours d’exécution.
- Créez un coffre Azure Key Vault et une clé pour utiliser TDE.
-
Instructions d’utilisation d’un module de sécurité matériel (HSM) et d’Azure Key Vault
- Le coffre de clés doit avoir la propriété suivante à utiliser pour TDE :
- suppression réversible et protection contre le vidage
-
Instructions d’utilisation d’un module de sécurité matériel (HSM) et d’Azure Key Vault
- La clé doit avoir les attributs suivants à utiliser pour TDE :
- La date d’activation (si définie) doit être antérieure à la date et à l’heure actuelles
- La date d’expiration (si définie) doit être postérieure à la date et à l’heure actuelles
- La clé doit être dans l’état activé
- En mesure d’effectuer des opérations get, wrap key, unwrap key
- Pour utiliser une clé Azure Key Vault HSM managée, suivez les instructions pour créer et activer un HSM managé à l’aide de Azure CLI
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Pour plus d’informations sur Azure Key Vault, consultez les instructions PowerShell d’Azure Key Vault et comment utiliser la suppression réversible Azure Key Vault avec PowerShell.
Attribuer une identité Microsoft Entra à votre serveur
Si vous avez déjà un serveur, utilisez les instructions suivantes pour ajouter une identité Microsoft Entra à votre serveur :
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Si vous créez un serveur, utilisez le cmdlet New-AzSqlServer avec le -Identity tag pour ajouter une identité Microsoft Entra lors de la création du serveur :
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Accorder des autorisations Azure Key Vault à votre serveur
Utilisez la cmdlet Set-AzKeyVaultAccessPolicy pour accorder à votre serveur l’accès au coffre de clés avant d’utiliser une clé à partir de celui-ci pour TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Pour ajouter des autorisations à votre serveur sur un Managed HSM, ajoutez le rôle RBAC local Managed HSM Crypto Service Encryption User au serveur. Ce rôle permet au serveur d’effectuer les opérations get, wrap key et unwrap key sur les clés dans le HSM managé. Pour plus d’informations, voir Gestion de rôle HSM managé.
Ajoutez la clé Azure Key Vault au serveur et définissez le protecteur TDE
- Utilisez l’applet de commande Get-AzKeyVaultKey pour récupérer l’ID de clé à partir du coffre de clés.
- Utilisez l’applet de commande Add-AzSqlServerKeyVaultKey pour ajouter la clé du coffre de clés Azure au serveur.
- Utilisez la cmdlet Set-AzSqlServerTransparentDataEncryptionProtector pour définir la clé en tant que protecteur TDE pour toutes les ressources de serveur.
- Utilisez la cmdlet Get-AzSqlServerTransparentDataEncryptionProtector pour confirmer que le protecteur TDE a été configuré comme prévu.
Note
Pour les clés HSM managées, utilisez la version Az.Sql 2.11.1 de PowerShell ou ultérieure.
Note
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.
Conseil
Utilisation de clés versionnées et non versionnées de Azure Key Vault pour TDE
Lorsque vous définissez le protecteur TDE, vous pouvez référencer une clé Azure Key Vault en utilisant soit une version spécifique de la clé, soit un identifiant de clé sans version.
Dans les deux cas, Azure SQL Database résout toujours et utilise la dernière version activée de la clé dans Azure Key Vault ou Azure Key Vault Managed HSM. Utilisez des identificateurs de clé sans version pour éviter d’incorporer une version de clé spécifique dans la configuration du protecteur TDE.
Les identificateurs de clé sans version sont actuellement pris en charge uniquement pour Azure SQL Database.
Exemples :
Identificateur de clé qui inclut une version spécifique
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Identificateur de clé sans version
https://<key-vault-name>.vault.azure.net/keys/<key-name>
# add the key from Azure 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>
# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>
Activer TDE
Utilisez la cmdlet Set-AzSqlDatabaseTransparentDataEncryption pour activer TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Maintenant, la base de données a TDE activé avec une clé de chiffrement dans Azure Key Vault.
Vérifier l’état de chiffrement et l’activité de chiffrement
Utilisez le Get-AzSqlDatabaseTransparentDataEncryption pour obtenir l’état de chiffrement d’une base de données.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Applets de commande PowerShell utiles
Utilisez la cmdlet Set-AzSqlDatabaseTransparentDataEncryption pour désactiver TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"Utilisez l’applet de commande Get-AzSqlServerKeyVaultKey pour renvoyer la liste des clés Azure Key Vault ajoutées au serveur.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>Utilisez Remove-AzSqlServerKeyVaultKey pour supprimer une clé Azure Key Vault du serveur.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Résolution des problèmes
Si le Key Vault est introuvable, assurez-vous d’être sous le bon abonnement.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Si vous ne pouvez pas ajouter la nouvelle clé au serveur, ou si vous ne pouvez pas mettre à jour la nouvelle clé en tant que protecteur TDE, vérifiez les conditions suivantes :
- La clé ne devrait pas avoir de date d’expiration.
- La clé doit avoir les opérations get, wrap key et unwrap key activées.
TDE BYOK Azure Synapse Analytics
Pour la documentation TDE BYOK concernant Azure Synapse Analytics, voir la documentation SQL d’Azure Synapse Analytics. 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.