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, instalará y configurará el Conector de SQL Server para Azure Key Vault y, a continuación, configurará el Cifrado de datos transparente (TDE) mediante una clave de Azure Key Vault.
Prerequisites
Antes de empezar a usar Azure Key Vault con la instancia de SQL Server, asegúrese de cumplir los siguientes requisitos previos:
Debes tener una suscripción a Azure.
Cree un inquilino de Microsoft Entra.
Revise los principios del almacenamiento de administración extensible de claves (EKM) con Azure Key Vault. Consulte Administración extensible de claves mediante Azure Key Vault (SQL Server).
Puede modificar el registro en el equipo SQL Server.
Instale la versión de Visual Studio C++ Redistributable basada en la versión de SQL Server que ejecute:
Versión de SQL Server Versión de Visual Studio C++ Redistributable 2008, 2008 R2, 2012, 2014 Paquetes de Visual C++ Redistributable para Visual Studio 2013 2016, 2017, 2019, 2022, 2025 Visual C++ Redistributable para Visual Studio 2015 Consulte Acceder a Azure Key Vault detrás de un firewall si planea usar SQL Server Connector for Azure Key Vault detrás de un firewall o con un servidor proxy.
Note
En SQL Server 2022 (16.x) CU 12 y versiones posteriores, SQL Server en Linux admite TDE Extensible Key Management con Azure Key Vault. Los pasos 3 y 4 de esta guía no son necesarios para SQL Server en Linux.
Flujo rápido
- Seleccione un modelo de autenticación en paso 1: Configurar el modelo de autenticación.
- Crear un almacén de claves y una clave en Paso 2: Crear un almacén de claves.
- Instale el conector en el paso 3: Instalar el conector de SQL Server.
- Configure el prerrequisito del registro en Paso 4: Añadir clave del registro para admitir al proveedor EKM.
- Configure SQL Server y valide el cifrado en paso 5: Configurar SQL Server.
Paso 1: Configuración del modelo de autenticación
Importante
Elija el modelo de autenticación antes de continuar:
- Use la pestaña Entidad de servicio para SQL Server local.
- Use la pestaña Identidad administrada para SQL Server en máquinas virtuales Azure o SQL Server habilitadas por Azure Arc, donde se admite la identidad administrada.
Matriz de compatibilidad del modelo de autenticación:
| Modelo de autenticación | Versión de SQL Server | Dónde se ejecuta SQL Server | Soportado |
|---|---|---|---|
| Entidad principal de servicio | Versiones admitidas que se tratan en este artículo | Máquina virtual de Azure local SQL Server habilitada por Azure Arc | Sí |
| Identidad administrada | SQL Server 2022 CU17 y versiones posteriores | Máquina virtual de Azure | Sí |
| Identidad administrada | SQL Server 2025 y versiones posteriores | SQL Server habilitado por Azure Arc | Sí |
| Identidad administrada | Any | On-premises | No |
Para conceder permisos de acceso a la instancia de SQL Server al almacén de claves de Azure, necesita una cuenta de entidad de servicio en Microsoft Entra ID.
Inicie sesión en el portal de Azure y realice cualquiera de los pasos siguientes:
Selecciona el botón Microsoft Entra ID.
Selecciona Más servicios y, a continuación, en el panel Todos los servicios, escribe Microsoft Entra ID.
Registre una aplicación con Microsoft Entra ID mediante los pasos siguientes. Para obtener instrucciones detalladas paso a paso, consulta la sección Obtención de una identidad para la aplicación de la entrada de blog de Azure Key Vault, Azure Key Vaul: Paso a paso.
En la sección Administración de tu recurso de Microsoft Entra ID, selecciona Registros de aplicaciones.
En la página Registros de aplicaciones, seleccione Nuevo registro.
En el panel Registrar una aplicación, escriba el nombre para el usuario de la aplicación y, después, seleccione Registrar.
En el panel izquierdo, seleccione Certificados y secretos>Secretos de cliente>Nuevo secreto de cliente.
En Agregar un secreto de cliente, escriba una descripción y una expiración adecuada y, después, seleccione Agregar. No puede elegir un período de expiración superior a 24 meses. Para obtener más información, consulte Incorporación de un secreto de cliente.
En el panel Certificados y secretos, en Valor, seleccione el botón Copiar situado junto al valor del secreto de cliente para usarlo para crear una clave asimétrica en SQL Server.
En el panel izquierdo, seleccione Información general y, a continuación, en el cuadro Id. de aplicación (cliente), copie el valor para usarlo para crear una clave asimétrica en SQL Server.
Paso 2: Crear un almacén de claves
Seleccione el método que quiera usar para crear un almacén de claves.
Note
Solo se admiten Azure Key Vault y Azure Key Vault Managed HSM. Azure Cloud HSM no está disponible.
Creación de un almacén de claves mediante Azure Portal
Para crear un almacén de claves mediante el portal de Azure, consulte Inicio rápido: Creación de un almacén de claves mediante el portal de Azure.
Control de acceso basado en roles de Azure
Use el control de acceso basado en roles de Azure (RBAC) para administrar el acceso a Azure Key Vault. No use directivas de acceso heredadas. Las directivas de acceso heredadas tienen vulnerabilidades de seguridad conocidas, faltan compatibilidad con Privileged Identity Management (PIM) y no deben usarse para cargas de trabajo y datos críticos. Para obtener más información sobre los permisos de Azure Key Vault RBAC, consulte Roles integrados de Azure para operaciones del plano de datos del almacén de claves.
Vaya al recurso del almacén de claves que creó y seleccione la configuración control de acceso (IAM).
Seleccione Agregar>Agregar asignación de rol.
La aplicación EKM o la identidad administrada necesitan el rol de usuario de cifrado de servicios criptográficos Key Vault para realizar operaciones de encapsulado y desencapsulado. Busque Usuario de cifrado del servicio criptográfico del almacén de claves y seleccione el rol. Seleccione Siguiente.
En la pestaña Miembros, seleccione la opción Seleccionar miembros y busque la aplicación Microsoft Entra o la identidad administrada que creó en el paso 1. Seleccione la aplicación o la identidad administrada y, a continuación, el botón Seleccionar .
Seleccione Revisar y asignar dos veces para completar la asignación de roles.
Crear una clave
El usuario que crea la clave necesita el rol de Administración del almacén de claves. Al igual que los pasos anteriores, agregue el miembro que crea la clave y asigne el rol.
En el panel Almacén de claves, seleccione Claves y después seleccione la opción Generar e importar. Esta acción abre el panel Crear una clave . Seleccione la opción Generar y escriba un nombre único para la clave. El Conector de SQL Server requiere que en el nombre de clave solo se usen los caracteres "a-z", "A-Z", "0-9" y "-", con un límite de 26 caracteres.
Use el tipo de clave RSA y el tamaño de clave RSA2048. EKM actualmente solo admite una clave RSA. Establezca las fechas de activación y expiración según corresponda y configure ¿Habilitado? en Sí.
Configuración de un HSM administrado Azure Key Vault (opcional)
Managed HSM de Azure Key Vault (módulo de seguridad de hardware) es compatible con SQL Server, SQL Server en Azure Virtual Machines (VMs), cuando se utiliza la versión más reciente de SQL Server Connector, y Azure SQL. El HSM administrado es un servicio de HSM totalmente gestionado, de alta disponibilidad y con inquilino único. HSM administrado proporciona una base segura para las operaciones criptográficas y el almacenamiento de claves. HSM administrado está diseñado para cumplir con los requisitos de seguridad y cumplimiento más estrictos.
En el paso 2 se muestra cómo crear un almacén de claves y una clave en Azure Key Vault. Opcionalmente, puede usar un HSM administrado de Azure Key Vault para almacenar o crear una clave para el conector de SQL Server. Siga estos pasos:
Cree un HSM administrado Azure Key Vault mediante el portal de Azure, el CLI de Azure, PowerShell o una plantilla de ARM.
Active el HSM administrado. Solo los administradores designados asignados durante la creación pueden activarlo. En el portal de Azure, seleccione el recurso HSM administrado y, a continuación, seleccione Descargar dominio de seguridad en el menú Información general. Siga una de las guías de inicio rápido para activar su Managed HSM.
Conceda permisos a la entidad de servicio Microsoft Entra o a la identidad administrada para acceder al HSM administrado. El rol Administrador de HSM administrado no concede permisos para crear una clave. Al igual que en el paso 2, la aplicación EKM o la identidad administrada necesitan el rol de usuario criptográfico de HSM administrado o de cifrado de servicio criptográfico de HSM administrado para realizar operaciones de encapsulado y desencapsulado. A fin de obtener más información, vea Roles integrados de RBAC local para HSM administrado.
En el menú Servicio de HSM administrado de Azure Key Vault, en Configuración, seleccione Claves. En la ventana Claves, seleccione Generar, importar o restaurar copia de seguridad para crear una clave o importar una existente.
Note
Los algoritmos RSA-HSM_2048 y RSA-HSM_3072 se admiten a partir de la actualización acumulativa 13 de SQL Server 2022 (16.x).
Azure Key Vault HSM administrado admite la rotación automática de claves. Para obtener más información, consulte Configurar la rotación automática de claves en Azure Managed HSM.
El HSM administrado admite conexiones de endpoint privado. Para obtener más información, consulte Integración de HSM administrado con Azure Private Link. En esta configuración, debe habilitar la opción omisión para servicios de confianza de Microsoft en la configuración Redes de Azure Key Vault Managed HSM.
Paso 3: Instalar el conector de SQL Server
Haga que un administrador de SQL Server descargue la versión más reciente del conector de SQL Server para Microsoft Azure Key Vault desde el Centro de descarga de Microsoft y ejecute el instalador.
De forma predeterminada, el conector se instala en C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Puede cambiar esta ubicación durante la instalación. Si lo cambias, ajusta los scripts de la siguiente sección.
Una instalación correcta coloca Microsoft.AzureKeyVaultService.EKM.dll en la máquina. Este ensamblado es el archivo DLL del proveedor criptográfico EKM. Regístrelo con SQL Server mediante la CREATE CRYPTOGRAPHIC PROVIDER instrucción .
El instalador también ofrece scripts de ejemplo para el cifrado de SQL Server.
Para obtener explicaciones de código de error, opciones de configuración o tareas de mantenimiento, consulte:
- Instrucciones de mantenimiento para el conector de SQL Server
- Explicaciones del código de error para el conector de SQL Server
Paso 4: Agregar clave del Registro para admitir el proveedor EKM
Warning
Solo un administrador de SQL Server que sepa exactamente lo que están haciendo debe modificar el registro. Los cambios incorrectos pueden causar problemas graves. Realice una copia de seguridad del registro antes de realizar cualquier cambio para poder restaurarlo si se produce un problema.
Ejecuta regedit para abrir el editor del Registro.
Cree una clave del Registro
SQL Server Cryptographic ProviderenHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Haz clic con el botón derecho en la clave del Registro
SQL Server Cryptographic Providery selecciona Permisos.Conceda control total en la
SQL Server Cryptographic Providerclave a la cuenta de usuario que ejecuta el servicio SQL Server.
Seleccione Aplicar y, después, Aceptar.
Cierra el Editor del Registro y reinicia el servicio SQL Server.
Note
Si usa TDE con EKM o Azure Key Vault en una instancia de clúster de conmutación por error, agregue también
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Providera la rutina de punto de comprobación del Registro del clúster para que el registro se sincronice en todos los nodos, lo que facilita la recuperación de la base de datos después de la conmutación por error y la rotación de claves.Ejecute el siguiente comando de PowerShell para agregar la clave del Registro a la rutina de punto de control:
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Paso 5: Configuración de SQL Server
Para obtener una nota sobre los niveles de permisos mínimos necesarios para cada acción de esta sección, vea B. Preguntas más frecuentes.
Fase 1: Configuración del proveedor criptográfico y las credenciales en master
Elija el modelo de autenticación y siga los pasos correspondientes.
Ejecute sqlcmd o abra SQL Server Management Studio.
Ejecute el script Transact-SQL siguiente para configurar SQL Server con el fin de usar EKM:
-- Enable advanced options. USE master; GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXEC sp_configure 'EKM provider enabled', 1; GO RECONFIGURE;Registre el Conector de SQL Server como proveedor EKM con SQL Server.
Cree un proveedor de servicios criptográficos mediante el Conector de SQL Server, que es un proveedor EKM para Azure Key Vault. En este ejemplo, el nombre del proveedor es
AzureKeyVault_EKM.CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GONote
La ruta de acceso al archivo no puede tener una longitud superior a 256 caracteres.
Configure una credencial de SQL Server para un inicio de sesión de SQL Server para usar el almacén de claves.
Agregue una credencial a cada inicio de sesión que realice el cifrado mediante una clave del almacén de claves. Existe una correspondencia biunívoca entre las credenciales y los inicios de sesión: cada inicio de sesión debe tener una credencial única.
Modifique este script de Transact-SQL como se indica a continuación:
Edite el argumento
IDENTITY(DocsSampleEKMKeyVault) para dirigirlo a Azure Key Vault.- Si usa la versión global de Azure, reemplace el argumento
IDENTITYpor el nombre de Azure Key Vault de Paso 2: Creación de un almacén de claves. - Si usa una nube privada de Azure (por ejemplo, Azure Government, Microsoft Azure operado por 21Vianet o Azure Alemania), reemplace el argumento
IDENTITYpor la dirección URI del almacén devuelta en Creación de un almacén de claves y una clave mediante PowerShell. No incluyahttps://en el URI de la bóveda de claves.
- Si usa la versión global de Azure, reemplace el argumento
Reemplace la primera parte del
SECRETargumento por el identificador de cliente de Microsoft Entra del paso 1: Configurar el modelo de autenticación. En este ejemplo, el id. de cliente esd956f6b9xxxxxxx.Importante
Quite los guiones del identificador de aplicación (cliente).
Complete la segunda parte del
SECRETargumento con el secreto de cliente del paso 1. La cadena final es una larga secuencia de letras y números sin guiones (salvo los guiones que pueda contener el propio Client Secret).
USE master; CREATE CREDENTIAL sysadmin_ekm_cred -- Set IDENTITY to the vault name (public Azure) or full vault hostname without https:// (sovereign clouds / Managed HSM) -- See https://dotnet.territoriali.olinfo.it/azure/key-vault/general/about-keys-secrets-certificates#dns-suffixes-for-base-url WITH IDENTITY = 'DocsSampleEKMKeyVault', --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret--> SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM; -- Add the credential to the SQL Server administrator's domain login ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL sysadmin_ekm_cred;Para ver un ejemplo de cómo usar variables y eliminar guiones del ID de cliente mediante programación, consulte CREATE CREDENTIAL.
Abra la clave Azure Key Vault en la instancia de SQL Server.
Tanto si ha creado una clave nueva como si ha importado una clave asimétrica en el paso 2: Crear un almacén de claves, abra la clave en SQL Server mediante
CREATE ASYMMETRIC KEY.Importante
Complete los requisitos previos del Registro antes de realizar este paso.
En los siguientes ejemplos:
- Reemplace por
EKMSampleASYKeyel nombre que desea usar en SQL Server. - Reemplace
ContosoRSAKey0por el nombre de su clave en Azure Key Vault o Managed HSM.
Use un nombre de clave sin versión (recomendado para la mayoría de los escenarios):
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;Use una versión de clave específica cuando necesite anclar operaciones a una versión:
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;En este ejemplo,
1a4d3b9b393c4678831ccc60def75379es la versión de clave específica que SQL Server usa para las operaciones de base de datos.- Reemplace por
Cree un inicio de sesión con la clave asimétrica de SQL Server que ha creado en el paso anterior.
-- Create a login that associates the asymmetric key with this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;Mueva la asignación de credenciales del inicio de sesión de administrador original al inicio de sesión creado a partir de la clave asimétrica.
SQL Server usa el inicio de sesión creado a partir de la clave asimétrica (
TDE_Login) para las operaciones EKM. Para asegurarse de que SQL Server puede acceder a Azure Key Vault durante las operaciones de cifrado y recuperación, asigne la credencial aTDE_Loginen lugar del inicio de sesión de instalación original.-- Remove the service principal credential from the original setup login ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL sysadmin_ekm_cred; -- Map the service principal credential to the login created from the asymmetric key ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;
Fase 2: Cifrado y validación de la base de datos de usuario
Configuración de la base de datos de usuario que se va a cifrar
Cree una base de datos de prueba para cifrar mediante la clave Azure Key Vault.
-- Create a test database for the TDE example. CREATE DATABASE TestTDE;Cree una clave de cifrado de base de datos mediante la clave asimétrica del servidor (
EKMSampleASYKey).USE TestTDE; -- Create a DEK protected by the EKM asymmetric key. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;Habilite TDE en la base de datos estableciendo
ENCRYPTION ON.-- Enable TDE for the database. ALTER DATABASE TestTDE SET ENCRYPTION ON;
Comprobación del uso de claves y el estado de cifrado
En la
masterbase de datos, ejecute la siguiente consulta Transact-SQL para comprobar que la clave asimétrica EKM existe y capturar su huella digital.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;La instrucción devuelve una salida similar a la siguiente:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>En la base de datos de usuario (
TestTDE), ejecute la siguiente consulta Transact-SQL para comprobar que TDE está habilitado y que la clave de cifrado de base de datos está protegida por una clave asimétrica.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');La instrucción devuelve una salida similar a la siguiente:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>Confirme que
encryptor_thumbprintcoincide con la huella digital devuelta desdesys.asymmetric_keys. Normalmente, una falta de coincidencia indica que la clave de cifrado de la base de datos está protegida por una clave diferente de la esperada.
Limpieza
Use los pasos de limpieza que coincidan con el modelo de autenticación que configuró.
Limpie los objetos de prueba que creó en este procedimiento.
-- CLEAN UP: shared objects + service principal credential USE master; GO ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [TestTDE]; GO DROP LOGIN [TDE_Login]; GO DROP ASYMMETRIC KEY [EKMSampleASYKey]; DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM]; GO DROP CREDENTIAL [sysadmin_ekm_cred]; GORevise si debe quitar la clave del
SQL Server Cryptographic ProviderRegistro.Importante
La
SQL Server Cryptographic Providerclave del Registro no se quita automáticamente después de eliminar las claves EKM.Elimine esta clave del Registro solo cuando ya no necesite EKM en la instancia. Eliminarlo demasiado pronto puede interrumpir la funcionalidad de EKM y las operaciones de recuperación.
Ruta de acceso del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
Rotación de claves asimétricas para TDE con Azure Key Vault
Use una guía operativa dedicada para los pasos de rotación de claves, incluidos scripts específicos de autenticación, comprobación y comprobaciones de seguridad:
Importante
No elimine las versiones anteriores de la clave después de una rotación. Es posible que todavía se necesiten versiones anteriores para restaurar copias de seguridad, archivos de registro y artefactos de recuperación anteriores.