Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
En este artículo se muestra cómo rotar manualmente la clave asimétrica usada por Cifrado de datos transparente (TDE) con administración extensible de claves (EKM) y Azure Key Vault.
Use este procedimiento después de configurar TDE con Azure Key Vault. Para obtener instrucciones de configuración iniciales, consulte Configuración de Cifrado de datos transparente con Azure Key Vault para SQL Server.
Importante
SQL Server no gira automáticamente la clave asimétrica usada para TDE. La rotación es una operación manual.
La rotación del protector de TDE lógico es una operación en línea y normalmente se completa rápidamente, ya que SQL Server vuelve a cifrar solo la clave de cifrado de base de datos (DEK), no toda la base de datos.
No elimine las versiones de clave anteriores después de la rotación. Es posible que las versiones anteriores sigan siendo necesarias para restaurar copias de seguridad anteriores, registros de transacciones u otros artefactos de recuperación.
Antes de empezar
- Complete la configuración inicial de EKM y TDE.
- Compruebe que SQL Server puede acceder actualmente al almacén de claves.
- Asegúrese de tener permisos para crear credenciales, inicios de sesión y claves asimétricas en SQL Server.
- Asegúrese de que el modelo de autenticación sigue siendo válido:
- Entidad de servicio: el registro de aplicaciones y el secreto de cliente son válidos.
- Identidad administrada: la identidad administrada SQL Server todavía está habilitada y tiene los permisos de clave necesarios.
Girar la clave
Elija el modelo de autenticación y siga los pasos correspondientes.
En Azure Key Vault o HSM administrado, gire la clave:
- Cree una nueva versión del mismo nombre de clave o
- Cree un nuevo nombre de clave.
En SQL Server, cree una credencial para la operación de rotación si es necesario.
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;Agregue la credencial a la entidad de instalación que crea la siguiente clave asimétrica.
ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL [<new_credential_name>];Cree la nueva clave asimétrica SQL Server a partir de Azure Key Vault.
Note
Para la rotación manual, SQL Server admite un nombre de clave sin versión y una referencia de clave con versiones:
- Sin versiones: use
<key_name>para permitir que SQL Server use la versión de clave más alta disponible en Azure Key Vault. - Con versiones: usa
<key_name>/<version>para fijar las operaciones de cifrado a una versión específica de la clave.
No es necesario crear un nombre de clave de AKV diferente para rotarla. Gire las claves mediante la creación de una nueva versión de clave y, a continuación, cree una nueva clave asimétrica SQL Server que haga referencia al formulario sin versiones o con versiones.
Use un nombre de clave sin versión o una versión de clave 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;- Sin versiones: use
Cree un nuevo inicio de sesión a partir de la nueva clave asimétrica.
CREATE LOGIN <new_login_name> FROM ASYMMETRIC KEY <new_ekm_key_name>;Mueva la asignación de credenciales del inicio de sesión de instalación al nuevo inicio de sesión de clave asimétrica.
ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL [<new_credential_name>]; ALTER LOGIN <new_login_name> ADD CREDENTIAL [<new_credential_name>];Vuelva a cifrar la clave de cifrado de base de datos (DEK) mediante la nueva clave asimétrica.
USE [<database_name>]; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;
Comprobación de la rotación
Compruebe los metadatos de cifrado de la base de datos.
SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('<database_name>');Compruebe la huella digital de la clave asimétrica de SQL Server.
SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys WHERE name = '<new_ekm_key_name>';Confirme que las huellas digitales coinciden.