Partilhar via


Girar chaves sempre criptografadas usando o SQL Server Management Studio

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure

Este artigo descreve tarefas para alternar chaves mestras de coluna Always Encrypted e chaves de criptografia de coluna com SQL Server Management Studio (SSMS).

Para obter uma visão geral do gerenciamento de chaves Always Encrypted, incluindo recomendações de práticas recomendadas e considerações importantes de segurança, consulte Visão geral do gerenciamento de chaves para Always Encrypted.

Observação

O uso de chaves mestras de coluna armazenadas em um HSM gerenciado no Cofre de Chaves do Azure requer o SSMS 18.9 ou uma versão posterior.

Girar teclas mestras de coluna

A rotação de uma chave mestra de coluna é o processo de substituição de uma chave mestra de coluna existente por uma nova chave mestra de coluna. Talvez seja necessário girar uma chave se ela tiver sido comprometida ou para estar em conformidade com as políticas ou regulamentos de conformidade da sua organização que exigem que as chaves criptográficas sejam alternadas regularmente. Uma rotação de chave mestra de coluna envolve a descriptografia de chaves de criptografia de coluna que são protegidas com a chave mestra de coluna atual, criptografando-as novamente usando a nova chave mestra de coluna e atualizando os metadados da chave.

Etapa 1: provisionar uma nova chave mestra de coluna

Siga as etapas na Configuração das Chaves Mestras de Coluna com a Janela Nova Chave Mestra de Coluna.

Observação

Ao usar o Azure Key Vault como o armazenamento de chaves, a rotação de chaves gerenciadas pelo cliente multilocatário não é suportada. Certifique-se de que a nova chave gerenciada pelo cliente esteja no mesmo locatário que a existente.

Passo 2: Encriptar chaves de encriptação de coluna com a nova chave mestra para coluna

Uma chave mestra de coluna normalmente protege uma ou mais chaves de criptografia de coluna. Cada chave de encriptação de coluna tem um valor encriptado que é armazenado no banco de dados como o resultado da encriptação com a chave mestra de coluna. Nesta etapa, criptografe cada uma das chaves de criptografia de coluna protegidas com a chave mestra de coluna que você está girando, com a nova chave mestra de coluna e armazene o novo valor criptografado no banco de dados. Como resultado, cada chave de criptografia de coluna afetada pela rotação terá dois valores criptografados: um valor criptografado com a chave mestra de coluna existente e um novo valor criptografado com a nova chave mestra de coluna.

  1. Usando o Pesquisador de Objetos, navegue até a pasta Chaves Mestras de Coluna Sempre Criptografadas>de Segurança> e localize a chave mestra de coluna que você está girando.
  2. Clique com o botão direito do mouse na chave mestra da coluna e selecione Girar.
  3. Na caixa de diálogo Rotação da Chave Mestra de Coluna, selecione o nome da sua nova chave mestra de coluna, que criou na Etapa 1, no campo de destino .
  4. Revise a lista de chaves de criptografia de coluna, protegidas pelas chaves mestras de coluna existentes. Essas chaves serão afetadas pela rotação.
  5. Selecione OK.

O SQL Server Management Studio obtém os metadados das chaves de criptografia de coluna protegidas com a chave mestra de coluna antiga e os metadados das chaves mestras de coluna antiga e nova. Em seguida, o SSMS usará os metadados da chave mestra de coluna para acessar o armazenamento de chaves que contém a chave mestra de coluna antiga e descriptografar a(s) chave(s) de criptografia de coluna. Posteriormente, o SSMS acessará o armazenamento de chaves que contém a nova chave mestra de coluna para produzir um novo conjunto de valores criptografados das chaves de criptografia de coluna e, em seguida, adicionará os novos valores aos metadados (gerando e emitindo instruções ALTER COLUMN ENCRYPTION KEY ).

Observação

Verifique se cada uma das chaves de criptografia de coluna, criptografadas com a antiga chave mestra de coluna, não está criptografada com nenhuma outra chave mestra de coluna. Em outras palavras, cada chave de criptografia de coluna, afetada pela rotação, deve ter exatamente um valor criptografado no banco de dados. Se qualquer chave de criptografia de coluna afetada tiver mais de um valor criptografado, você precisará remover o valor antes de prosseguir com a rotação (consulte a Etapa 4 sobre como remover um valor criptografado de uma chave de criptografia de coluna).

Etapa 3: Configurar seus aplicativos com a nova chave mestra de coluna

Nesta etapa, você precisa certificar-se de que todos os aplicativos cliente que consultam colunas de banco de dados protegidas com a chave mestra de coluna que você está girando possam acessar a nova chave mestra de coluna (ou seja, colunas de banco de dados criptografadas com uma chave de criptografia de coluna criptografada com a chave mestra de coluna, sendo girada). Esta etapa depende do tipo de armazenamento de chaves em que sua nova chave mestra de coluna está. Por exemplo:

  • Se a nova chave mestra de coluna for um certificado armazenado no Repositório de Certificados do Windows, você precisará implantar o certificado no mesmo local de armazenamento de certificados ( de Usuário Atual ou de computador local ) que o local especificado no caminho da chave mestra da coluna no banco de dados. O aplicativo precisa ser capaz de acessar o certificado:
    • Se o certificado estiver armazenado no local de armazenamento de certificados do Usuário Atual , o certificado precisará ser importado para o repositório Usuário Atual da identidade do Windows do aplicativo (usuário).
    • Se o certificado estiver armazenado no local de armazenamento de certificados do computador local , a identidade do Windows do aplicativo deverá ter permissão para acessar o certificado.
  • Se a nova chave mestra de coluna estiver armazenada no Cofre de Chaves do Microsoft Azure, o aplicativo deverá ser implementado para que possa se autenticar no Azure e tenha permissão para acessar a chave.

Para obter detalhes, consulte Criar e armazenar chaves mestras de coluna para Always Encrypted.

Observação

Neste ponto da rotação, tanto a chave mestra de coluna antiga quanto a nova chave mestra de coluna são válidas e podem ser usadas para acessar os dados.

Etapa 4: Limpar os valores das chaves de criptografia de coluna criptografados com a antiga chave mestra de coluna

Depois de configurar todos os seus aplicativos para usar a nova chave mestra de coluna, remova do banco de dados os valores das chaves de criptografia de coluna criptografadas com a chave mestra de coluna antiga . A remoção de valores antigos garantirá que você esteja pronto para a próxima rotação (lembre-se, cada chave de criptografia de coluna, protegida com uma chave mestra de coluna a ser girada, deve ter exatamente um valor criptografado).

Outra razão para limpar o valor antigo antes de arquivar ou remover a chave mestra da coluna antiga está relacionada ao desempenho: ao consultar uma coluna criptografada, um driver de cliente habilitado para Always Encrypted pode precisar tentar descriptografar dois valores: o valor antigo e o novo. O driver não sabe qual das duas chaves mestras de coluna é válida no ambiente do aplicativo, portanto, o driver recuperará ambos os valores criptografados do servidor. Se a desencriptação de um dos valores falhar porque está protegida com a chave-mestra da coluna que não se encontra disponível (por exemplo, a chave-mestra da coluna antiga que foi removida do armazenamento), o driver tentará desencriptar outro valor usando a nova chave-mestra da coluna.

Advertência

Se você remover o valor de uma chave de criptografia de coluna antes que sua chave mestra de coluna correspondente tenha sido disponibilizada para um aplicativo, o aplicativo não poderá mais descriptografar a coluna do banco de dados.

  1. Usando o Pesquisador de Objetos, navegue até a pasta Chaves Sempre Criptografadas de Segurança> e localize a chave mestra de coluna existente que você deseja substituir.
  2. Clique com o botão direito do rato na sua chave mestra de coluna existente e selecione Limpeza.
  3. Revise a lista de valores de chave de criptografia de coluna a serem removidos.
  4. Selecione OK.

O SQL Server Management Studio emitirá instruções ALTER COLUMN ENCRYPTION KEY para descartar valores criptografados de chaves de criptografia de coluna criptografadas com a antiga chave mestra de coluna.

Etapa 5: Excluir metadados da sua antiga chave mestra de coluna

Se você optar por remover a definição da chave mestra de coluna antiga do banco de dados, use as etapas abaixo.

  1. Usando o Pesquisador de Objetos, navegue até a pasta Segurança>Chaves Sempre Criptografadas>Chaves Mestras de Coluna e localize a chave mestra de coluna antiga a ser removida do banco de dados.
  2. Clique com o botão direito do mouse na chave mestra da coluna antiga e selecione Excluir. (Isso gerará e emitirá uma instrução DROP COLUMN MASTER KEY para remover os metadados da chave mestra da coluna.)
  3. Selecione OK.

Observação

É altamente recomendável que você não exclua permanentemente a chave mestra da coluna antiga após a rotação. Em vez disso, você deve manter a chave mestra da coluna antiga em seu armazenamento de chaves atual ou arquivá-la em outro local seguro. Se você restaurar seu banco de dados de um arquivo de backup para um ponto no tempo antes da nova chave mestra de coluna ter sido configurada, precisará da chave antiga para acessar os dados.

Permissões para girar a chave mestra da coluna

Girar uma chave mestra de coluna requer as seguintes permissões de banco de dados:

  • ALTER ANY COLUMN MASTER KEY - necessário para criar metadados para a nova chave mestra de coluna e excluir os metadados para a chave mestra de coluna antiga.
  • ALTER ANY COLUMN ENCRYPTION KEY - necessário para modificar metadados de chave de criptografia de coluna (adicionar novos valores criptografados).

Você também precisa de permissões de repositório de chaves para poder acessar tanto a chave mestra de coluna antiga quanto a nova chave mestra de coluna nos seus repositórios de chaves. Para obter informações detalhadas sobre as permissões de armazenamento de chaves necessárias para operações de gerenciamento de chaves, vá para Criar e armazenar chaves mestras de coluna para Always Encrypted e encontre uma seção relevante para seu armazenamento de chaves.

Girar chaves de criptografia de coluna

Girar uma chave de criptografia de coluna envolve descriptografar os dados em todas as colunas que são criptografadas com a chave a ser girada para fora e criptografar novamente os dados usando a nova chave de criptografia de coluna.

Observação

Girar uma chave de criptografia de coluna pode levar muito tempo se as tabelas que contêm colunas criptografadas com a chave sendo girada forem grandes. Enquanto os dados estão sendo criptografados novamente, seus aplicativos não podem gravar nas tabelas afetadas. Portanto, sua organização precisa planejar uma rotação de chave de criptografia de coluna com muito cuidado. Para girar uma chave de criptografia de coluna, use o Assistente Sempre Criptografado.

  1. Abra o assistente para o banco de dados: clique com o botão direito do mouse no banco de dados, aponte para Tarefas e selecione Criptografar Colunas.
  2. Reveja a página Introdução e, em seguida, selecione Seguinte.
  3. Na página de Seleção de Coluna , expanda as tabelas e localize todas as colunas que pretende substituir, atualmente criptografadas com a antiga chave de criptografia de coluna.
  4. Para cada coluna criptografada com a chave de criptografia de coluna antiga, defina Chave de Criptografia como uma nova chave gerada automaticamente. Observação: Como alternativa, você pode criar uma nova chave de criptografia de coluna antes de executar o assistente - consulte Provisionar chaves de criptografia de coluna com a caixa de diálogo Nova chave de criptografia de coluna.
  5. Na página Configuração da Chave Mestra , selecione um local para armazenar a nova chave, selecione uma fonte de chave mestra e selecione Avançar. Observação: Se você estiver usando uma chave de criptografia de coluna existente (não uma gerada automaticamente), não há nenhuma ação a ser executada nesta página.
  6. Na página Validação, escolha se deseja executar o script imediatamente ou criar um script do PowerShell e selecione Avançar.
  7. Na página Resumo , reveja as opções selecionadas e, em seguida, selecione Concluir e feche o assistente quando concluído.
  8. Usando o Pesquisador de Objetos, navegue até a pasta Security/Always Encrypted Keys/Column Encryption Keys e localize sua chave de criptografia de coluna antiga, a ser removida do banco de dados. Clique com o botão direito do mouse na tecla e selecione Excluir.

Permissões para rotacionar chaves de criptografia de coluna

Girar uma chave de criptografia de coluna requer as seguintes permissões de banco de dados: ALTER ANY COLUMN MASTER KEY - necessário se você usar uma nova chave de criptografia de coluna gerada automaticamente (uma nova chave mestra de coluna e seus novos metadados também serão gerados). ALTERE QUALQUER CHAVE DE CRIPTOGRAFIA DE COLUNA -required para adicionar metadados para a nova chave de criptografia de coluna.

Você também precisa de permissões de repositório de chaves para poder acessar as chaves mestras da coluna, tanto para a chave de criptografia de coluna nova como para a antiga. Para obter informações detalhadas sobre as permissões de armazenamento de chaves necessárias para operações de gerenciamento de chaves, vá para Criar e armazenar chaves mestras de coluna para Always Encrypted e encontre uma seção relevante para seu armazenamento de chaves.