Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este artigo mostra como girar manualmente a chave assimétrica usada por Transparent Data Encryption (TDE) com EKM (Gerenciamento extensível de chaves) e Azure Key Vault.
Use este procedimento depois de configurar o TDE com Azure Key Vault. Para obter instruções iniciais de instalação, consulte Configurar Transparent Data Encryption com Azure Key Vault para SQL Server.
Importante
SQL Server não gira automaticamente a chave assimétrica usada para TDE. Rotação é uma operação manual.
Girar o protetor de TDE lógico é uma operação online e geralmente é concluída rapidamente, pois SQL Server criptografa novamente apenas a DEK (chave de criptografia de banco de dados), não todo o banco de dados.
Não exclua as versões de chave anteriores após a rotação. Versões anteriores ainda podem ser necessárias para restaurar backups mais antigos, logs de transações ou outros artefatos de recuperação.
Antes de começar
- Conclua a configuração inicial de EKM e TDE.
- Verifique se SQL Server atualmente pode acessar o cofre de chaves.
- Verifique se você tem permissões para criar credenciais, logons e chaves assimétricas no SQL Server.
- Verifique se o modelo de autenticação ainda é válido:
- Entidade de serviço: o registro do aplicativo e o segredo do cliente são válidos.
- Identidade gerenciada: a identidade gerenciada SQL Server ainda está habilitada e tem as permissões de chave necessárias.
Girar a chave
Escolha seu modelo de autenticação e siga as etapas correspondentes.
Em Azure Key Vault ou HSM Gerenciado, gire a chave:
- Criar uma nova versão do mesmo nome de chave ou
- Crie um novo nome de chave.
Em SQL Server, crie uma credencial para a operação de rotação, se necessário.
CREATE CREDENTIAL <new_credential_name> WITH IDENTITY = <key_vault_name_or_uri_without_https>, SECRET = '<client_id_without_hyphens><client_secret>' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;Adicione a credencial à entidade de segurança de configuração que cria a próxima chave assimétrica.
ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL [<new_credential_name>];Crie a nova chave assimétrica SQL Server de Azure Key Vault.
Note
Para rotação manual, SQL Server dá suporte a um nome de chave sem versão e a uma referência de chave com versão:
- Sem versão: use
<key_name>para permitir que SQL Server use a versão de chave mais alta disponível no Azure Key Vault. - Com versionamento: use
<key_name>/<version>para vincular operações de criptografia a uma versão específica da chave.
Você não precisa criar um nome de chave AKV diferente para rotacionar. Faça a rotação das chaves criando uma nova versão da chave e, em seguida, criando uma nova chave assimétrica do SQL Server que faz referência à forma sem versão ou versionada.
Use um nome de chave sem versão ou uma versão de chave específica:
CREATE ASYMMETRIC KEY <new_ekm_key_name> FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = '<key_name_or_key_name/version>', CREATION_DISPOSITION = OPEN_EXISTING;- Sem versão: use
Crie um novo logon com base na nova chave assimétrica.
CREATE LOGIN <new_login_name> FROM ASYMMETRIC KEY <new_ekm_key_name>;Mova o mapeamento de credenciais do logon de instalação para o novo logon de chave assimétrica.
ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL [<new_credential_name>]; ALTER LOGIN <new_login_name> ADD CREDENTIAL [<new_credential_name>];Criptografar novamente a DEK (chave de criptografia de banco de dados) usando a nova chave assimétrica.
USE [<database_name>]; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;
Verificar rotação
Verifique os metadados de criptografia do banco de dados.
SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('<database_name>');Verifique a impressão digital da chave assimétrica do SQL Server.
SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys WHERE name = '<new_ekm_key_name>';Confirme se as impressões digitais correspondem.