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.
Le connecteur SQL Server pour Microsoft Azure Key Vault permet au chiffrement SQL Server de tirer parti du service Azure Key Vault en tant que fournisseur eKM (Extensible Key Management) pour protéger ses clés de chiffrement.
Inclus dans cette rubrique :
Étape 1 : Configuration du coffre de clés à utiliser par SQL Server
étape 3 : configurer SQL Server pour utiliser un fournisseur EKM pour le Key Vault
exemple B : chiffrement des sauvegardes à l’aide d’une clé asymétrique à partir du coffre de clés
Utilisations d’EKM
Une organisation peut utiliser le chiffrement SQL Server pour protéger les données sensibles. Le chiffrement SQL Server inclut chiffrement transparent des données (TDE), chiffrement au niveau des colonnes (CLE) et chiffrement de sauvegarde. Dans tous ces cas, les données sont chiffrées à l’aide d’une clé de chiffrement de données symétrique. La clé de chiffrement de données symétriques est davantage protégée en la chiffrant avec une hiérarchie de clés stockées dans SQL Server. L’architecture du fournisseur EKM permet également à SQL Server de protéger les clés de chiffrement des données à l’aide d’une clé asymétrique stockée en dehors de SQL Server dans un fournisseur de chiffrement externe. L’utilisation de l’architecture du fournisseur EKM ajoute une couche de sécurité supplémentaire et permet aux organisations de séparer la gestion des clés et des données.
Le connecteur SQL Server pour Azure Key Vault permet à SQL Server de tirer parti du service de coffre de clés scalable, hautes performances et hautement disponible en tant que fournisseur EKM pour la protection des clés de chiffrement. Le service key vault peut être utilisé avec des installations SQL Server sur des machines virtuelles Microsoft Azure et pour des serveurs locaux. Le service key vault offre également la possibilité d’utiliser des modules de sécurité matériels (HSM) étroitement contrôlés et surveillés pour un niveau de protection plus élevé pour les clés de chiffrement asymétriques. Pour plus d’informations sur le coffre de clés, consultez Azure Key Vault .
L’image suivante récapitule le flux de processus d’EKM en utilisant le coffre de clés. Les numéros d’étape de processus dans l’image ne sont pas destinés à correspondre aux numéros d’étape de configuration qui suivent l’image.
Étape 1 : Configurer le coffre de clés à utiliser par SQL Server
Procédez comme suit pour configurer un coffre de clés à utiliser avec le moteur de base de données SQL Server pour la protection des clés de chiffrement. Un coffre peut déjà être utilisé pour l’organisation. Lorsqu’un coffre n’existe pas, l’administrateur Azure de votre organisation qui est désigné pour gérer les clés de chiffrement peut créer un coffre, générer une clé asymétrique dans le coffre, puis autoriser SQL Server à utiliser la clé. Pour vous familiariser avec la révision du service key vault Prise en main d’Azure Key Vault, et powerShell applets de commande Azure Key Vault référence.
Important
Si vous avez plusieurs abonnements Azure, vous devez utiliser l’abonnement qui contient SQL Server.
Créer un coffre : Créer un coffre à l’aide des instructions de la section Créer un coffre de clés de Prise en main d’Azure Key Vault. Enregistrez le nom du coffre. Cette rubrique utilise ContosoKeyVault comme nom du coffre de clés.
Générer une clé asymétrique dans le coffre : La clé asymétrique dans le coffre de clés est utilisée pour protéger les clés de chiffrement SQL Server. Seule la partie publique de la clé asymétrique quitte le coffre, la partie privée n’est jamais exportée par le coffre. Toutes les opérations de chiffrement utilisant la clé asymétrique sont déléguées au coffre de clés Azure et sont protégées par la sécurité du coffre de clés.
Il existe plusieurs façons de générer une clé asymétrique et de la stocker dans le coffre. Vous pouvez générer en externe une clé et importer la clé dans le coffre en tant que fichier .pfx. Vous pouvez également créer la clé directement dans le coffre à l’aide des API du coffre de clés.
Le connecteur SQL Server nécessite que les clés asymétriques soient RSA 2048 bits et que le nom de la clé ne peut utiliser que les caractères « a-z », « A-Z », « 0-9 » et « - ». Dans ce document, le nom de la clé asymétrique est appelé ContosoMasterKey. Remplacez cela par le nom unique que vous utilisez pour la clé.
Important
L’importation de la clé asymétrique est vivement recommandée pour les scénarios de production, car elle permet à l’administrateur de déposer la clé dans un système de mise en dépôt. Si la clé asymétrique est créée dans le coffre, elle ne peut pas être mise en séquestre, car la clé privée ne peut jamais en sortir. Les clés utilisées pour protéger les données critiques doivent être supprimées. La perte d’une clé asymétrique entraîne des données irrécupérables définitivement.
Important
Le coffre-fort de clés prend en charge plusieurs versions de la même clé désignée. Les clés à utiliser par le connecteur SQL Server ne doivent pas être versionnées ni être renouvelées. Si l’administrateur souhaite déployer la clé utilisée pour le chiffrement SQL Server, une nouvelle clé portant un autre nom doit être créée dans le coffre et utilisée pour chiffrer la clé DEK.
Pour plus d’informations sur l’importation d’une clé dans le coffre de clés ou la création d’une clé dans le coffre de clés (non recommandée pour un environnement de production), consultez la Ajouter une clé ou un secret au coffre de clés section de Prise en main d’Azure Key Vault.
Obtenir les principaux de services Azure Active Directory à utiliser pour SQL Server : Lorsque l’organisation s’inscrit à un service cloud Microsoft, elle obtient Azure Active Directory. Créez des principaux de services dans Azure Active Directory pour que SQL Server les utilise (pour s’authentifier auprès d’Azure Active Directory) lorsqu'il accède au coffre de clés.
Un principal de service sera nécessaire pour un administrateur SQL Server afin d'accéder au coffre lors de la configuration de SQL Server pour utiliser le chiffrement.
Un autre principal de service sera nécessaire pour permettre au moteur de base de données SQL Server d'accéder au coffre afin de déchiffrer les clés utilisées dans le chiffrement SQL Server.
Pour plus d’informations sur l’inscription d’une application et la génération d’un principal de service, consultez la section Inscrire une application auprès d’Azure Active Directory dans Prise en main d’Azure Key Vault. Le processus d’inscription retourne un ID d’application (également appelé ID CLIENT ) et une clé d’authentification (également appelée secret ) pour chaque Principal du service Azure Active Directory. Lorsqu’il est utilisé dans l’instruction
CREATE CREDENTIAL, le trait d’union doit être supprimé de l’ID client . Enregistrez-les pour les utiliser dans les scripts ci-dessous :principal de service pour un login d'administrateur système : CLIENTID_sysadmin_login et SECRET_sysadmin_login
Principal de service pour le moteur de base de données SQL Server : CLIENTID_DBEngine et SECRET_DBEngine.
Accorder l’autorisation aux principaux de service d’accéder au coffre de clés : les CLIENTID_sysadmin_login et CLIENTID_DBEngineService principaux de service nécessitent les autorisations lire, lister, wrapKeyet unwrapKey dans le coffre de clés. Si vous envisagez de créer des clés via SQL Server, vous devez également accorder l’autorisation créer dans le coffre de clés.
Important
Les utilisateurs doivent avoir au moins les opérations emballerClé et déballerClé pour le coffre de clés.
Pour plus d’informations sur l’octroi d’autorisations au coffre, consultez la Autoriser l’application à utiliser la clé ou la section secret dans Prise en main d’Azure Key Vault.
Liens vers la documentation d’Azure Key Vault
Prise en main d’Azure Key Vault
Informations de référence sur les applets de commande Azure Key Vault PowerShell
Étape 2 : Installer le connecteur SQL Server
Le connecteur SQL Server est téléchargé et installé par l’administrateur de l’ordinateur SQL Server. Le connecteur SQL Server est disponible en téléchargement à partir du Centre de téléchargement Microsoft . Recherchez "SQL Server" connecteur pour Microsoft Azure Key Vault, examinez les détails, la configuration système requise et les instructions d’installation. Choisissez de télécharger le connecteur et démarrez l’installation en utilisant Exécuter. Passez en revue la licence et acceptez la licence et poursuivez.
Par défaut, le connecteur est installé sur C :\Program Files\SQL Server Connector pour Microsoft Azure Key Vault. Cet emplacement peut être modifié lors de l’installation. (Si modifié, ajustez les scripts ci-dessous.)
Une fois l’installation terminée, les éléments suivants sont installés sur l’ordinateur :
Microsoft.AzureKeyVaultService.EKM.dll: il s’agit de la DLL du fournisseur EKM de chiffrement qui doit être inscrite auprès de SQL Server à l’aide de l’instruction CREATE CRYPTOGRAPHIC PROVIDER.
Connecteur Azure Key Vault SQL Server: Il s’agit d’un service Windows qui permet au fournisseur EKM cryptographique de communiquer avec le Key Vault.
L’installation du connecteur SQL Server vous permet également de télécharger des exemples de scripts pour le chiffrement SQL Server.
Étape 3 : Configurer SQL Server pour utiliser un fournisseur EKM pour le coffre de clés
Autorisations
Pour terminer tout ce processus, vous devez disposer de l’autorisation CONTROL SERVER ou de l’appartenance au rôle serveur fixe sysadmin. Les actions spécifiques nécessitent les autorisations suivantes :
Pour créer un fournisseur de chiffrement, vous devez disposer de l’autorisation CONTROL SERVER ou de l’appartenance au rôle serveur fixe sysadmin.
Pour modifier une option de configuration et exécuter l’instruction RECONFIGURE, vous devez disposer de l’autorisation au niveau du serveur ALTER SETTINGS. L’autorisation ALTER SETTINGS est implicitement conservée par les rôles serveur fixes sysadmin et serveradmin.
Pour créer des informations d’identification, vous devez disposer de l’autorisation ALTER ANY CREDENTIAL.
Pour ajouter des informations d’identification à une connexion, vous devez disposer de l’autorisation ALTER ANY LOGIN.
Pour créer une clé asymétrique, nécessite l’autorisation CREATE ASYMMETRIC KEY.
Pour configurer SQL Server pour utiliser un fournisseur de chiffrement
Configurez le moteur de base de données pour utiliser EKM et inscrivez (créez) le fournisseur de chiffrement auprès de SQL Server.
-- Enable advanced options. USE master; GO sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GO -- Enable EKM provider sp_configure 'EKM provider enabled', 1 ; GO RECONFIGURE ; GO -- Create a cryptographic provider, using the SQL Server Connector -- which is an EKM provider for the Azure Key Vault. This example uses -- the name AzureKeyVault_EKM_Prov. CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GOConfigurez des informations d’identification SQL Server pour une connexion d’administrateur SQL Server pour utiliser le coffre de clés afin de configurer et de gérer les scénarios de chiffrement SQL Server.
Important
L’argument IDENTITY de
CREATE CREDENTIALnécessite le nom du coffre de clés. L’argument SECRET deCREATE CREDENTIALnécessite l'ID client <> (sans traits d’union) et le Secret <> à passer ensemble sans espace entre eux.Dans l’exemple suivant, l’ID client (
00001111-aaaa-2222-bbbb-3333cccc4444) est supprimé des traits d’union et entré en tant que chaîne00001111AAAA2222BBBB3333CCCC4444et le secret est représenté par la chaîne SECRET_sysadmin_login.USE master; CREATE CREDENTIAL sysadmin_ekm_cred WITH IDENTITY = 'ContosoKeyVault', SECRET = '00001111AAAA2222BBBB3333CCCC4444SECRET_sysadmin_login' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ; -- Add the credential to the SQL Server administrators domain login ALTER LOGIN [<domain>/<login>] ADD CREDENTIAL sysadmin_ekm_cred;Pour obtenir un exemple d’utilisation de variables pour les arguments
CREATE CREDENTIALet la suppression programmatique des traits d’union de l’ID client, consultez CREATE CREDENTIAL (Transact-SQL).Si vous avez importé une clé asymétrique comme décrit précédemment à l’étape 1, section 3, ouvrez la clé en fournissant votre nom de clé dans l’exemple suivant.
CREATE ASYMMETRIC KEY CONTOSO_KEY FROM PROVIDER [AzureKeyVault_EKM_Prov] WITH PROVIDER_KEY_NAME = 'ContosoMasterKey', CREATION_DISPOSITION = OPEN_EXISTING;Bien qu’il ne soit pas recommandé pour la production (car la clé ne peut pas être exportée), il est possible de créer une clé asymétrique directement dans le coffre à partir de SQL Server. Si vous n’avez pas importé de clé précédemment, créez une clé asymétrique dans le coffre de clés à des fins de test à l’aide du script suivant. Exécutez le script à l’aide d’une connexion provisionnée avec les informations d’identification sysadmin_ekm_cred.
CREATE ASYMMETRIC KEY CONTOSO_KEY FROM PROVIDER [AzureKeyVault_EKM_Prov] WITH ALGORITHM = RSA_2048, PROVIDER_KEY_NAME = 'ContosoMasterKey';
Pourboire
Les utilisateurs recevant l’erreur Impossible d’exporter la clé publique à partir du fournisseur. Code d’erreur du fournisseur : 2053. devront vérifier leurs autorisations obtenir, lister, wrapKeyet unwrapKey dans le coffre de clés.
Pour plus d’informations, consultez les rubriques suivantes :
Exemples
Exemple A : Chiffrement transparent des données à l’aide d’une clé asymétrique à partir du coffre de clés
Après avoir effectué les étapes ci-dessus, créez des informations d’identification et une connexion, créez une clé de chiffrement de base de données protégée par la clé asymétrique dans le coffre de clés. Utilisez la clé de chiffrement de base de données pour chiffrer une base de données avec TDE.
Pour chiffrer une base de données, vous devez disposer de l’autorisation CONTROL sur la base de données.
Pour activer TDE à l’aide d’EKM et du coffre de clés
Créez un identifiant SQL Server pour que le moteur de base de données puisse l'utiliser lors de l'accès au coffre de clés EKM pendant le chargement de la base de données.
Important
L’argument IDENTITY de
CREATE CREDENTIALnécessite le nom du coffre de clés. L’argument SECRET deCREATE CREDENTIALnécessite l'ID client <> (sans traits d’union) et le Secret <> à passer ensemble sans espace entre eux.Dans l’exemple suivant, l’ID client (
00001111-aaaa-2222-bbbb-3333cccc4444) est supprimé des traits d’union et entré en tant que chaîne00001111AAAA2222BBBB3333CCCC4444et le secret est représenté par la chaîne SECRET_DBEngine.USE master; CREATE CREDENTIAL Azure_EKM_TDE_cred WITH IDENTITY = 'ContosoKeyVault', SECRET = '00001111AAAA2222BBBB3333CCCC4444SECRET_DBEngine' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ;Créez une connexion SQL Server à utiliser par le moteur de base de données pour TDE et ajoutez-y les informations d’identification. Cet exemple utilise la CONTOSO_KEY clé asymétrique stockée dans le coffre de clés, qui a été importée ou créée précédemment pour la base de données master, comme décrit à l’étape 3 de , section 3 ci-dessus.
USE master; -- Create a SQL Server login associated with the asymmetric key -- for the Database engine to use when it loads a database -- encrypted by TDE. CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY CONTOSO_KEY; GO -- Alter the TDE Login to add the credential for use by the -- Database Engine to access the key vault ALTER LOGIN TDE_Login ADD CREDENTIAL Azure_EKM_TDE_cred ; GOCréez la clé de chiffrement de base de données (DEK) qui sera utilisée pour TDE. La clé DEK peut être créée à l’aide de n’importe quel algorithme ou longueur de clé pris en charge par SQL Server. La clé DEK sera protégée par la clé asymétrique dans le coffre-fort de clés.
Cet exemple utilise la CONTOSO_KEY clé asymétrique stockée dans le coffre de clés, qui a été importée ou créée précédemment, comme décrit à l’étape 3 de , section 3 ci-dessus.
USE ContosoDatabase; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY CONTOSO_KEY; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE ContosoDatabase SET ENCRYPTION ON ; GOPour plus d’informations, consultez les rubriques suivantes :
Exemple B : Chiffrement des sauvegardes à l’aide d’une clé asymétrique à partir du coffre de clés
Les sauvegardes chiffrées sont prises en charge à partir de SQL Server 2014. L’exemple suivant crée et restaure une sauvegarde chiffrée d’une clé de chiffrement de données protégée par la clé asymétrique dans le coffre de clés.
USE master;
BACKUP DATABASE [DATABASE_TO_BACKUP]
TO DISK = N'[PATH TO BACKUP FILE]'
WITH FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD,
ENCRYPTION(ALGORITHM = AES_256, SERVER ASYMMETRIC KEY = [CONTOSO_KEY]);
GO
Exemple de code de restauration.
RESTORE DATABASE [DATABASE_TO_BACKUP]
FROM DISK = N'[PATH TO BACKUP FILE]' WITH FILE = 1, NOUNLOAD, REPLACE;
GO
Pour plus d’informations sur les options de sauvegarde, consultez BACKUP (Transact-SQL).
Exemple C : Chiffrement au niveau des colonnes à l’aide d’une clé asymétrique à partir du coffre de clés
L’exemple suivant crée une clé symétrique protégée par une clé asymétrique dans le coffre à clés. Ensuite, la clé symétrique est utilisée pour chiffrer les données dans la base de données.
Cet exemple utilise la CONTOSO_KEY clé asymétrique stockée dans le coffre de clés, qui a été importée ou créée précédemment, comme décrit à l’étape 3 de , section 3 ci-dessus. Pour utiliser cette clé asymétrique dans la base de données ContosoDatabase, vous devez réexécuter l’instruction CREATE ASYMMETRIC KEY pour fournir à la base de données ContosoDatabase une référence à la clé.
USE [ContosoDatabase];
GO
-- Create a reference to the key in the key vault
CREATE ASYMMETRIC KEY CONTOSO_KEY
FROM PROVIDER [AzureKeyVault_EKM_Prov]
WITH PROVIDER_KEY_NAME = 'ContosoMasterKey',
CREATION_DISPOSITION = OPEN_EXISTING;
-- Create the data encryption key.
-- The data encryption key can be created using any SQL Server
-- supported algorithm or key length.
-- The DEK will be protected by the asymmetric key in the key vault
CREATE SYMMETRIC KEY DATA_ENCRYPTION_KEY
WITH ALGORITHM=AES_256
ENCRYPTION BY ASYMMETRIC KEY CONTOSO_KEY;
DECLARE @DATA VARBINARY(MAX);
--Open the symmetric key for use in this session
OPEN SYMMETRIC KEY DATA_ENCRYPTION_KEY
DECRYPTION BY ASYMMETRIC KEY CONTOSO_KEY;
--Encrypt syntax
SELECT @DATA = ENCRYPTBYKEY(KEY_GUID('DATA_ENCRYPTION_KEY'), CONVERT(VARBINARY,'Plain text data to encrypt'));
-- Decrypt syntax
SELECT CONVERT(VARCHAR, DECRYPTBYKEY(@DATA));
--Close the symmetric key
CLOSE SYMMETRIC KEY DATA_ENCRYPTION_KEY;
Voir aussi
CRÉER UN FOURNISSEUR CRYPTOGRAPHIQUE (Transact-SQL)CRÉER DES IDENTIFIANTS (Transact-SQL)CRÉER UNE CLÉ ASYMÉTRIQUE (Transact-SQL)CRÉER UNE CLÉ SYMÉTRIQUE (Transact-SQL)Gestion Extensible de Clés (EKM)Activer TDE à l’aide d’EKMChiffrement de sauvegardeCréer une sauvegarde chiffrée