Database
 sql >> Database >  >> RDS >> Database

Utilizzo di dati protetti con Azure Key Vault da Linux

Microsoft ha migliorato la sua funzionalità di sicurezza Always Encrypted consentendo l'archiviazione delle chiavi che proteggono i dati in un Azure Key Vault.

Il driver ODBC di SQL Server ha supportato le colonne Always Encrypted da quando Microsoft ha inizialmente introdotto la funzionalità in SQL Server 2016. A partire dalla build 1.10.4 del driver, sono state aggiunte le impostazioni della stringa di connessione necessarie per supportare lo scenario Always Encrypted data/Azure Key Vault .

Il processo per l'utilizzo delle colonne Always Encrypted protette di Azure da Linux e UNIX è:

  1. Crea un Azure Key Vault in Windows Azure.
  2. Crea una nuova registrazione per l'app.

    Durante questo processo, genererai un ID client dell'applicazione e un segreto. Questi valori saranno necessari più avanti in questa esercitazione durante la configurazione dell'origine dati del driver ODBC di SQL Server.

  3. In SQL Server Management Studio, creare una tabella di test in un'istanza di SQL Server 2016 (o successiva):
    CREATE TABLE dbo.EncryptedTable
    (
      ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL
    );
    
  4. Fai clic con il pulsante destro del mouse sulla tabella. Dal menu a comparsa, scegli Crittografa colonne .

    Viene avviata la procedura guidata Always Encrypted.

  5. Sulla Selezione della colonna pagina, espandi le tabelle e seleziona le colonne che desideri crittografare.
  6. Scegli un tipo di crittografia per ogni colonna.

    Deterministico - crittografa sempre lo stesso testo cifrato, consentendo l'esecuzione di ricerche di uguaglianza, join e raggruppamento per.

    Randomizzato genera un valore di testo cifrato diverso per lo stesso testo normale, che è più sicuro, ma non supporta alcuna operazione.

  7. Scegli CEK_Auto1 (New) come chiave di crittografia per ogni colonna, che è una nuova chiave generata automaticamente. Scegli Avanti .
  8. Scegli Azure Key Vault , quindi accedi al tuo account Azure quando richiesto.
  9. Scegli il tuo Azure Key Vault dall'elenco. Scegli Avanti .
  10. Scegli Avanti .
  11. Scegli Fine .
  12. Scegli Chiudi .
  13. Sul tuo computer Linux o UNIX, installa la versione 1.10.4+ del driver ODBC di SQL Server.
  14. Configura un'origine dati ODBC in /etc/odbc.ini che si connette all'istanza di 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.
    	    
  15. Verifica di poter visualizzare i dati non crittografati:
    /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016
    SQL>  select * from EncryptedTable
  16. Se desideri inserire dati in una colonna Always Encrypted, devi utilizzare un INSERT parametrizzato e il nostro altro blog Always Encrypted fornisce alcuni esempi che mostrano come farlo.