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

Verwenden von Data Protected mit einem Azure Key Vault unter Linux

Microsoft hat seine Sicherheitsfunktion „Always Encrypted“ verbessert, indem es ermöglicht wird, dass die Schlüssel, die die Daten sichern, in einem Azure Key Vault gespeichert werden.

Der SQL Server-ODBC-Treiber hat Always Encrypted-Spalten unterstützt, seit Microsoft das Feature erstmals in SQL Server 2016 eingeführt hat. Beginnend mit Build 1.10.4 des Treibers haben wir die erforderlichen Verbindungszeichenfolgeneinstellungen hinzugefügt, um das Always Encrypted-Daten-/Azure Key Vault-Szenario zu unterstützen .

Der Prozess zum Arbeiten mit Azure-gesicherten Always Encrypted-Spalten von Linux und UNIX ist:

  1. Erstellen Sie einen Azure Key Vault in Windows Azure.
  2. Erstellen Sie eine neue App-Registrierung.

    Während dieses Vorgangs generieren Sie eine Anwendungsclient-ID und einen geheimen Schlüssel. Sie benötigen diese Werte später in diesem Lernprogramm, wenn Sie Ihre SQL Server-ODBC-Treiberdatenquelle konfigurieren.

  3. Erstellen Sie in SQL Server Management Studio eine Testtabelle in einer Instanz von SQL Server 2016 (oder höher):
    CREATE TABLE dbo.EncryptedTable
    (
      ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL
    );
    
  4. Klicken Sie mit der rechten Maustaste auf die Tabelle. Wählen Sie im Popup-Menü Spalten verschlüsseln aus .

    Der Always Encrypted-Assistent wird gestartet.

  5. Auf der Spaltenauswahl Seite, erweitern Sie die Tabellen und wählen Sie die Spalten aus, die Sie verschlüsseln möchten.
  6. Wählen Sie einen Verschlüsselungstyp für jede Spalte.

    Deterministisch - verschlüsselt immer mit demselben Chiffretext, wodurch Gleichheitssuchen, Verknüpfungen und Gruppieren nach durchgeführt werden können.

    Randomisiert generiert einen anderen Chiffretextwert für denselben Klartext, der sicherer ist, aber keine Operationen unterstützt.

  7. Wählen Sie CEK_Auto1 (New) als Verschlüsselungsschlüssel für jede Spalte, der ein neuer automatisch generierter Schlüssel ist. Wählen Sie Weiter .
  8. Wählen Sie Azure Key Vault , und melden Sie sich dann bei Ihrem Azure-Konto an, wenn Sie dazu aufgefordert werden.
  9. Wählen Sie Ihren Azure Key Vault aus der Liste aus. Wählen Sie Weiter .
  10. Wählen Sie Weiter .
  11. Wählen Sie Fertig stellen .
  12. Wählen Sie Schließen .
  13. Installieren Sie auf Ihrem Linux- oder UNIX-Computer Version 1.10.4+ des SQL Server-ODBC-Treibers.
  14. Konfigurieren Sie eine ODBC-Datenquelle in /etc/odbc.ini der eine Verbindung zu Ihrer SQL Server-Instanz herstellt:
    [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. Testen Sie, ob Sie die unverschlüsselten Daten anzeigen können:
    /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016
    SQL>  select * from EncryptedTable
  16. Wenn Sie Daten in eine Always Encrypted-Spalte einfügen möchten, müssen Sie ein parametrisiertes INSERT verwenden, und unser anderer Always Encrypted-Blog enthält einige Beispiele, die zeigen, wie das geht.