Transparent Data Encryption para Banco de Dados SQL, Instância Gerenciada de SQL e Azure Synapse Analytics
Aplica-se a: Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
A TDE (Transparent Data Encryption) ajuda a proteger o Banco de Dados SQL do Azure, a Instância Gerenciada de SQL do Azure e o Azure Synapse Analytics contra a ameaça de atividade offline mal-intencionada, por meio de criptografia de dados inativos. Ela realiza a criptografia e a descriptografia em tempo real do banco de dados, de backups associados e de arquivos de log de transações em repouso, sem a necessidade de alterações no aplicativo. Por padrão, a TDE está habilitada para todos os Bancos de Dados SQL do Microsoft Azure recentemente implantados e deve ser habilitada de forma manual para banco de dados mais antigos do Banco de Dados SQL do Azure. Para a Instância Gerenciada de SQL do Azure, a TDE está habilitada no nível da instância e de bancos de dados recém-criados. A TDE deve ser habilitada manualmente para o Azure Synapse Analytics.
Observação
Este artigo se aplica ao Banco de Dados SQL do Azure, à Instância Gerenciada de SQL do Azure e ao Azure Synapse Analytics (pools de SQL dedicados, anteriormente conhecido como SQL DW). Para obter a documentação sobre o Transparent Data Encryption para pools de SQL dedicados nos workspaces do Azure Synapse, confira Criptografia do Azure Synapse Analytics.
Alguns itens considerados conteúdo do cliente, como nomes de tabela, de objeto e de índice, podem ser transmitidos em arquivos de log para obter suporte e solução de problemas da Microsoft.
A TDE realiza a criptografia e a descriptografia de E/S em tempo real dos dados no nível da página. Cada página é descriptografada quando é lida na memória e, em seguida, criptografada antes de ser gravada no disco. A TDE criptografa o armazenamento de um banco de dados inteiro usando uma chave simétrica chamada de DEK (Chave de Criptografia de Banco de Dados). Na inicialização do banco de dados, o DEK criptografado é descriptografado e usado para descriptografia e para a nova criptografia dos arquivos do banco de dados no processo do mecanismo de banco de dados do SQL Server. O DEK é protegido pelo protetor de TDE. O protetor de TDE é um certificado gerenciado pelo serviço (TDE gerenciada por serviço) ou uma chave assimétrica armazenada no Azure Key Vault (TDE gerenciada pelo cliente).
Para o Banco de Dados SQL do Azure e o Azure Synapse, o protetor de TDE é definido no nível do servidor e é herdado por todos os bancos de dados associados a esse servidor. Para a Instância Gerenciada de SQL do Azure, o protetor de TDE é definido no nível de instância e herdado por todos os bancos de dados criptografados nessa instância. O termo servidor refere-se ao servidor e instância ao longo deste documento, a menos que indicado de forma diferente.
Importante
Todos os bancos de dados SQL criados recentemente são criptografados por padrão usando Transparent Data Encryption de serviço gerenciado. Quando a origem do banco de dados é criptografada, os bancos de dados de destino criados por meio de restauração, replicação geográfica e cópia do banco de dados são criptografados por padrão. No entanto, quando a origem do banco de dados não é criptografada, os bancos de dados de destino criados por meio de restauração, replicação geográfica e cópia do banco de dados não são criptografados por padrão. Bancos de dados SQL existentes criados antes de maio de 2017 e bancos de dados de Instância Gerenciada de SQL existentes criados antes de fevereiro de 2019 não são criptografados por padrão. Os bancos de dados da Instância Gerenciada de SQL criados por meio da restauração herdam o status de criptografia da fonte. Para restaurar um banco de dados criptografado por TDE existente, o certificado TDE necessário deve primeiro ser importado para a Instância Gerenciada de SQL. Para descobrir o status de criptografia de um banco de dados, execute uma consulta seleção no DMV sys.dm_database_encryption_keys e verifique o status da coluna encryption_state_desc
.
Observação
A TDE não pode ser usada para criptografar bancos de dados do sistema, como o banco de dados master
, no Banco de Dados SQL e na Instância Gerenciada de SQL do Azure. O banco de dados master
contém os objetos necessários para executar as operações de TDE nos bancos de dados do usuário. Não recomendamos armazenar dados confidenciais nos bancos de dados do sistema. A exceção é o tempdb
, que é sempre criptografado com a TDE para proteger os dados armazenados nele.
Transparent Data Encryption de serviço gerenciado
No Azure, a configuração padrão para TDE é de DEK protegido por certificado do servidor interno. O certificado do servidor interno é exclusivo para cada servidor, e o algoritmo de criptografia usado é o AES 256. Se um banco de dados estiver em uma relação de replicação geográfica, tanto o banco de dados primário como o banco de dados geográfico secundário serão protegidos pela chave de servidor pai do primário. Se dois bancos de dados estiverem conectados ao mesmo servidor, eles também compartilharão o mesmo certificado interno. A Microsoft gira automaticamente esses certificados em conformidade com a política de segurança interna e a chave raiz é protegida por um armazenamento secreto interno da Microsoft. Os clientes podem verificar a conformidade do Banco de Dados SQL e da Instância Gerenciada de SQL com políticas de segurança internas em relatórios de auditoria de terceiros independentes disponíveis na Central de Confiabilidade da Microsoft.
A Microsoft também move e gerencia as chaves conforme necessário para replicação geográfica e restaurações.
Transparent Data Encryption gerenciada pelo cliente – Bring Your Own Key
A TDE gerenciada pelo cliente também é conhecida como suporte a BYOK (Bring Your Own Key) para TDE. Nesse cenário, o protetor de TDE que criptografa a DEK é uma chave assimétrica gerenciada pelo cliente, que é armazenada em um Azure Key Vault (sistema de gerenciamento de chaves externas baseado em nuvem do Azure) gerenciado e de propriedade do cliente e nunca abandona o cofre de chaves. O protetor de TDE pode ser gerado pelo cofre de chaves ou transferido para esse cofre de um dispositivo de HSM (módulo de segurança de hardware) local. O Banco de Dados SQL, a Instância Gerenciada de SQL e o Azure Synapse precisam ter permissões concedidas ao cofre de chaves de propriedade do cliente para descriptografar e criptografar o DEK. Se as permissões do servidor para o cofre de chaves forem revogadas, um banco de dados não poderá ser acessado e todos os dados serão criptografados.
Com a integração do TDE ao Azure Key Vault, os usuários podem controlar as principais tarefas de gerenciamento, incluindo rotações de chave, permissões de cofre de chaves, backups de chaves e habilitar auditoria/relatório em todos os protetores de TDE usando a funcionalidade do Azure Key Vault. O Key Vault fornece gerenciamento central de chaves, utiliza HSMs rigidamente monitorados e permite a separação de funções entre o gerenciamento de chaves e dados para ajudar na conformidade com as políticas de segurança. Para saber mais sobre BYOK para o Banco de Dados SQL do Azure e o Azure Synapse, confira Transparent Data Encryption com integração do Azure Key Vault.
Para começar a usar a TDE com a integração do Azure Key Vault, confira o guia de instruções Ativar a Transparent Data Encryption usando sua chave do Key Vault.
Mover um banco de dados protegido por Transparent Data Encryption
Não é necessário descriptografar bancos de dados para operações no Azure. As configurações de TDE no banco de dados de origem ou banco de dados primário são herdadas de forma transparente no destino. As operações incluídas envolvem:
- Restauração geográfica
- Restauração via autoatendimento point-in-time
- Restauração de um banco de dados excluído
- Replicação geográfica ativa
- Criação de uma cópia do banco de dados
- Restauração de arquivo de backup para a instância gerenciada do SQL do Azure
Importante
Fazer backup somente cópia manual de um banco de dados criptografado por TDE gerenciada por serviço não é permitido na Instância Gerenciada de SQL do Azure, uma vez que o certificado usado para criptografia não está acessível. Use o recurso de restauração pontual de modo a mover esse tipo de banco de dados para outra Instância Gerenciada de SQL ou alternar para chave gerenciada pelo cliente.
Ao exportar um banco de dados protegido por TDE, o conteúdo exportado dele não é criptografado. Esse conteúdo exportado é armazenado em arquivos BACPAC não criptografados. Proteja os arquivos BACPAC adequadamente e habilite a TDE após a conclusão da importação do novo banco de dados.
Por exemplo, se o arquivo BACPAC for exportado de uma Instância do SQL Server, o conteúdo importado do novo banco de dados não será automaticamente criptografado. Da mesma forma, se o arquivo BACPAC for importado para uma Instância do SQL Server, o novo banco de dados também não será automaticamente criptografado.
A única exceção é quando você exporta um banco de dados do Banco de Dados SQL e para ele. A TDE está habilitada no novo banco de dados, mas o arquivo BACPAC em si ainda não está criptografado.
Gerenciar Transparent Data Encryption
Gerencie a TDE no portal do Azure.
Para configurar a TDE por meio do Portal do Azure, você deve estar conectado como Proprietário do Azure, Colaborador ou Gerenciador de Segurança do SQL.
Habilitar e desabilitar a TDE no nível do banco de dados. Para a Instância Gerenciada de SQL do Azure, use T-SQL (Transact-SQL) a fim de ativar e desativar a TDE em um banco de dados. No Banco de Dados SQL do Azure e no Azure Synapse, você pode gerenciar a TDE para o banco de dados no portal do Azure depois de entrar com a conta de administrador ou colaborador do Azure. Localize as configurações da TDE em seu banco de dados do usuário. Por padrão, é usada a chave de criptografia no nível do servidor. Um certificado de TDE é gerado automaticamente para o servidor que contém o banco de dados.
Você define a chave mestra de TDE, conhecida como o protetor de TDE, no nível do servidor ou da instância. Para usar a TDE com suporte a BYOK e proteger seus bancos de dados com uma chave do Azure Key Vault, abra as configurações da TDE no seu servidor ou instância gerenciada.
Você também pode usar uma chave gerenciada pelo cliente para TDE em um nível de banco de dados para o banco de dados SQL do Azure. Para obter mais informações, confira TDE (Transparent Data Encryption) com chaves gerenciadas pelo cliente no nível do banco de dados.