Microsoft a amélioré sa fonctionnalité de sécurité Always Encrypted en permettant aux clés qui sécurisent les données d'être stockées dans un Azure Key Vault.
Le pilote ODBC SQL Server prend en charge les colonnes Always Encrypted depuis que Microsoft a initialement introduit la fonctionnalité dans SQL Server 2016. À partir de la version 1.10.4 du pilote, nous avons ajouté les paramètres de chaîne de connexion nécessaires pour prendre en charge le scénario Always Encrypted data / Azure Key Vault .
Le processus d'utilisation des colonnes Always Encrypted sécurisées par Azure à partir de Linux et UNIX est le suivant :
- Créer un Azure Key Vault dans Windows Azure.
- Créez un nouvel enregistrement d'application.
Au cours de ce processus, vous générerez un ID et un secret de client d'application. Vous aurez besoin de ces valeurs plus tard dans ce didacticiel lorsque vous configurerez la source de données de votre pilote ODBC SQL Server.
- Dans SQL Server Management Studio, créez une table de test dans une instance SQL Server 2016 (ou version ultérieure) :
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Cliquez avec le bouton droit sur le tableau. Dans le menu contextuel, choisissez Chiffrer les colonnes .
L'assistant Always Encrypted démarre.
- Sur la sélection de colonne page, développez les tableaux et sélectionnez les colonnes que vous souhaitez chiffrer.
- Choisissez un type de chiffrement pour chaque colonne.
Déterministe - chiffre toujours avec le même texte chiffré, ce qui permet d'effectuer des recherches d'égalité, des jointures et des regroupements.
Randomisé génère une valeur de texte chiffré différente pour le même texte brut, ce qui est plus sûr, mais ne prend en charge aucune opération.
- Choisissez
CEK_Auto1 (New)
comme clé de chiffrement pour chaque colonne, qui est une nouvelle clé générée automatiquement. Choisissez Suivant . - Choisir Azure Key Vault , puis connectez-vous à votre compte Azure lorsque vous y êtes invité.
- Choisissez votre Azure Key Vault dans la liste. Choisissez Suivant .
- Choisir Suivant .
- Choisir Terminer .
- Choisissez Fermer .
- Sur votre machine Linux ou UNIX, installez la version 1.10.4+ du pilote ODBC SQL Server.
- Configurer une source de données ODBC dans
/etc/odbc.ini
qui se connecte à votre instance SQL Server :[SQLSERVER_2016] Driver=Easysoft ODBC-SQL Server SSL Server=machine\sqlserver_instance Database=database_with_always_encrypted_data User=user # This can be a Windows or SQL Server login. Password=password Trusted_Connection=Yes # Set this to No for a SQL Server login ColumnEncryption=Enabled KeyStoreAuthentication=KeyVaultClientSecret KeyStorePrincipalId=ac9e3f9b-ed5e-4f11-9746-f1d25cc5867c # Your application client ID KeyStoreSecret=wQOFhXY/1yIEUK75j8m/o4IUU7tf3AnVRc3ybO6b3VA # and application secret generated when registering # an App in your Azure portal.
- Vérifiez que vous pouvez afficher les données non chiffrées :
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Si vous souhaitez insérer des données dans une colonne Always Encrypted, vous devez utiliser un INSERT paramétré, et notre autre blog Always Encrypted fournit quelques exemples qui montrent comment procéder.