sql >> Base de Datos >  >> RDS >> Database

Uso de datos protegidos con Azure Key Vault desde Linux

Microsoft ha mejorado su función de seguridad Always Encrypted al permitir que las claves que protegen los datos se almacenen en un Azure Key Vault.

El controlador ODBC de SQL Server es compatible con las columnas de Always Encrypted desde que Microsoft introdujo inicialmente la función en SQL Server 2016. A partir de la versión 1.10.4 del controlador, agregamos la configuración de cadena de conexión necesaria para admitir el escenario de datos de Always Encrypted/Azure Key Vault .

El proceso para trabajar con columnas Always Encrypted seguras de Azure desde Linux y UNIX es:

  1. Cree un almacén de claves de Azure en Windows Azure.
  2. Cree un nuevo registro de aplicación.

    Durante este proceso, generará un ID y un secreto de cliente de la aplicación. Necesitará estos valores más adelante en este tutorial cuando configure su fuente de datos del controlador ODBC de SQL Server.

  3. En SQL Server Management Studio, cree una tabla de prueba en una instancia de SQL Server 2016 (o posterior):
    CREATE TABLE dbo.EncryptedTable
    (
      ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL
    );
    
  4. Haga clic derecho en la tabla. En el menú emergente, seleccione Cifrar columnas .

    Se inicia el asistente de Always Encrypted.

  5. En la Selección de columna página, expanda las tablas y seleccione las columnas que desea cifrar.
  6. Elija un tipo de cifrado para cada columna.

    Determinista - siempre cifra con el mismo texto cifrado, lo que permite realizar búsquedas de igualdad, uniones y agrupaciones.

    Al azar genera un valor de texto cifrado diferente para el mismo texto sin formato, que es más seguro, pero no admite ninguna operación.

  7. Elija CEK_Auto1 (New) como clave de cifrado para cada columna, que es una nueva clave generada automáticamente. Elija Siguiente .
  8. Elija Azure Key Vault y luego inicie sesión en su cuenta de Azure cuando se le solicite.
  9. Elija su Azure Key Vault de la lista. Elija Siguiente .
  10. Seleccione Siguiente .
  11. Seleccione Finalizar .
  12. Seleccione Cerrar .
  13. En su máquina Linux o UNIX, instale la versión 1.10.4+ del controlador ODBC de SQL Server.
  14. Configure una fuente de datos ODBC en /etc/odbc.ini que se conecta a su instancia de 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. Pruebe que puede mostrar los datos sin cifrar:
    /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016
    SQL>  select * from EncryptedTable
  16. Si desea insertar datos en una columna de Always Encrypted, debe usar un INSERT parametrizado, y nuestro otro blog de Always Encrypted proporciona algunos ejemplos que muestran cómo hacerlo.