Preciso fazer um pequeno benchmarking do AlwaysOn, com e sem o TDE ativado. Todas as instruções que vejo cobrem a adição de bancos de dados criptografados a um grupo de disponibilidade, mas não vejo menção de habilitar a criptografia para um banco de dados já em um AG.
Posso apenas restaurar o certificado do servidor para todos os nós e habilitar o TDE do primário? Espero não precisar remover o banco de dados do AG, criptografá-lo e reinicializar todos os nós, pois o banco de dados tem cerca de 100 GB. Podemos fazer isso se necessário, mas certamente atrasará um pouco nossos testes.
Atualizar
Acabei de tentar isso em algumas VMs de laboratório. Consegui criar um certificado no primário, restaurá-lo em todos os nós secundários e, em seguida, criar uma chave de criptografia de banco de dados no primário usando este certificado. Tudo o que tive que fazer depois disso foi ALTER DATABASE AdventureWorks SET ENCRYPTION ON
no servidor principal e, após um ou dois minutos, sys.dm_database_encryption_keys mostrou o estado_criptografia = 3 em todos os nós.
Então, pergunta de acompanhamento: Existe alguma razão para pensar que não devo usar este procedimento? O SQL Server parece estar satisfeito com os resultados, mas não vi essa abordagem ser discutida em nenhum lugar. Ao lidar com questões de criptografia e alta disponibilidade, não quero deixar as coisas ao acaso.
Na ausência de qualquer outra entrada, aqui está o que consegui deduzir. Breve história: isso parece funcionar bem.
Tanto quanto posso ver, habilitar o TDE para um banco de dados é uma operação registrada, mas a criptografia de dados real não é registrada (caso contrário, o log de transações aumentaria consideravelmente, o que não acontece). Presumo que haja algo como o mapa de alteração diferencial ou um sinalizador nos cabeçalhos da página para indicar se uma página está criptografada ou não, e o mecanismo de armazenamento apenas mastiga tudo até que esteja totalmente criptografado.
Quando habilito o TDE no banco de dados primário, o banco de dados secundário acaba sendo criptografado também (verifiquei isso com um editor hexadecimal). Enquanto a criptografia está em andamento, a exibição sys.dm_database_encryption_keys indica que percent_complete para todos os servidores secundários é 0 e esse valor nunca aumenta. O servidor primário atualiza esta coluna normalmente. Todas as réplicas tendem a terminar a criptografia em seu próprio ritmo, ponto em que o estado de criptografia muda para 3. Parece que tudo funciona normalmente quando termina.