Database
 sql >> Base de Dados >  >> RDS >> Database

Usando dados protegidos com um Azure Key Vault do Linux


A Microsoft aprimorou seu recurso de segurança Always Encrypted, permitindo que as chaves que protegem os dados sejam armazenadas em um Azure Key Vault.

O driver ODBC do SQL Server tem suporte para colunas Always Encrypted desde que a Microsoft introduziu inicialmente o recurso no SQL Server 2016. A partir do build 1.10.4 do driver, adicionamos as configurações de cadeia de conexão necessárias para dar suporte ao cenário Always Encrypted data/Azure Key Vault .

O processo para trabalhar com colunas Always Encrypted protegidas pelo Azure do Linux e UNIX é:
  1. Crie um Azure Key Vault no Windows Azure.
  2. Crie um novo registro de aplicativo.
    Durante esse processo, você gerará um ID de cliente de aplicativo e um segredo. Você precisará desses valores posteriormente neste tutorial ao configurar sua fonte de dados do driver ODBC do SQL Server.
  3. No SQL Server Management Studio, crie uma tabela de teste em uma instância do SQL Server 2016 (ou posterior):
    CREATE TABLE dbo.EncryptedTable
    (
      ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL
    );
    
  4. Clique com o botão direito do mouse na tabela. No menu pop-up, escolha Criptografar Colunas .
    O Assistente Always Encrypted é iniciado.
  5. Na Seleção de colunas página, expanda as tabelas e selecione as colunas que você deseja criptografar.
  6. Escolha um tipo de criptografia para cada coluna.
    Determinístico - sempre criptografa para o mesmo texto cifrado, permitindo que pesquisas de igualdade, junções e agrupamento por sejam realizadas.

    Aleatório gera um valor de texto cifrado diferente para o mesmo texto simples, que é mais seguro, mas não oferece suporte a nenhuma operação.
  7. Escolha CEK_Auto1 (New) como a chave de criptografia para cada coluna, que é uma nova chave gerada automaticamente. Escolha Próximo .
  8. Escolha Azure Key Vault e, em seguida, entre na sua conta do Azure quando solicitado.
  9. Escolha seu Azure Key Vault na lista. Escolha Próximo .
  10. Escolha Próximo .
  11. Escolha Concluir .
  12. Escolha Fechar .
  13. Em sua máquina Linux ou UNIX, instale a versão 1.10.4+ do driver ODBC do SQL Server.
  14. Configure uma fonte de dados ODBC em /etc/odbc.ini que se conecta à sua instância do 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. Teste se você pode exibir os dados não criptografados:
    /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016
    SQL>  select * from EncryptedTable
  16. Se você deseja inserir dados em uma coluna Always Encrypted, você precisa usar um INSERT parametrizado, e nosso outro blog Always Encrypted fornece alguns exemplos que mostram como fazer isso.