Configuración del cifrado de columnas mediante el asistente para Always Encrypted

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

El asistente para Always Encrypted es una herramienta eficaz que permite establecer la configuración de Always Encrypted elegida para las columnas de la base de datos seleccionadas. Según la configuración actual y la configuración de destino elegida, el asistente puede cifrar una columna, descifrarla (quitar el cifrado) o volver a cifrarla (por ejemplo, con una nueva clave de cifrado de columnas o con un tipo de cifrado diferente del actual configurado para la columna). Es posible configurar varias columnas en una misma ejecución del asistente.

El asistente le permite cifrar columnas con claves de cifrado de columnas existentes, aunque también puede generar una nueva clave de cifrado de columnas o, además de esta, una nueva clave maestra de columna.

Si su base de datos está configurada con un enclave seguro, puede ejecutar las operaciones criptográficas en contexto, sin sacar los datos de la base de datos. El asistente quita todas las dependencias que bloquean el cambio de esquema de la columna que se va a cifrar. Emite un cifrado en contexto para cada columna mediante el enclave dentro del motor de base de datos. Cuando finalice el cifrado, el asistente vuelve a crear las dependencias. Para más información sobre Always Encrypted con enclaves seguros, vea el artículo Uso de Always Encrypted con enclaves seguros con el controlador JDBC.

Cuando la base de datos no está configurada con un enclave seguro, el asistente le dará la oportunidad de habilitar un enclave seguro. Si decide no habilitar un enclave seguro o no está usando claves habilitadas para el enclave, el asistente funciona moviendo los datos fuera de la base de datos y realizando operaciones criptográficas dentro del proceso SSMS. El asistente crea una tabla (o varias) con la configuración de cifrado deseada en la base de datos, carga todos los datos de las tablas originales, realiza las operaciones criptográficas solicitadas, carga los datos en las nuevas tablas y, después, intercambia las tablas originales por las nuevas.

Sugerencia

El uso del cifrado en contexto mediante Always Encrypted con enclaves seguros, si está disponible en su entorno, puede reducir considerablemente el tiempo y la confiabilidad de las operaciones de cifrado.

Nota:

La ejecución de operaciones criptográficas puede llevar mucho tiempo. Durante ese tiempo, la base de datos no está disponible para escribir transacciones. PowerShell es una herramienta recomendada para realizar operaciones criptográficas en tablas de mayor tamaño. Consulte Configuración del cifrado de columnas mediante Always Encrypted con PowerShell o Configuración del cifrado de columnas en contexto con PowerShell.

Permisos

Para realizar operaciones criptográficas con el asistente, necesita tener los permisos VIEW ANY COLUMN MASTER KEY DEFINITION y VIEW ANY COLUMN ENCRYPTION KEY DEFINITION. Además, necesitará permisos de almacén de claves para poder crear la clave maestra de columna, acceder a esta y usarla. Para obtener información detallada sobre los permisos de almacén de claves, vaya a Creación y almacenamiento de claves maestras de columna para Always Encrypted y/o busque la sección correspondiente a su almacén de claves.

Apertura del asistente para Always Encrypted

Puede iniciar el asistente en tres niveles distintos:

  • En un nivel de base de datos: si quiere cifrar varias columnas ubicadas en diferentes tablas.
  • En un nivel de tabla: si quiere cifrar varias columnas ubicadas en la misma tabla.
  • En un nivel de columna: si quiere cifrar una columna específica.
  1. Conéctese a SQL Server con el componente Explorador de objetos de SQL Server Management Studio.

  2. Para cifrar:

    1. Varias columnas ubicadas en diferentes tablas en una base de datos, haga clic con el botón derecho en la base de datos, seleccione Tareas y, después, seleccione Cifrar columnas.
    2. Varias columnas ubicadas en la misma tabla, vaya a la tabla, haga clic en ella con el botón derecho y, después, seleccione Cifrar columnas.
    3. Una columna individual, vaya a la columna, haga clic en ella con el botón derecho y, después, seleccione Cifrar columnas.

Página de selección de columnas

En esta página, puede seleccionar las columnas que quiere cifrar, volver a cifrar o descifrar y puede definir la configuración de cifrado de destino para las columnas seleccionadas.

Para cifrar una columna de texto no cifrado, seleccione un tipo de cifrado (determinista o aleatorio) y una clave de cifrado para la columna.

Para cambiar un tipo de cifrado o rotar (cambiar) una clave de cifrado de columnas por una columna ya cifrada, seleccione el tipo de cifrado que quiere aplicar y la clave.

Si quiere que el asistente cifre o vuelva a cifrar una o más columnas con una nueva clave de cifrado de columnas, seleccione una clave que contenga (New) en su nombre. El asistente generará la clave.

Para descifrar una columna que actualmente está cifrada, seleccione Texto no cifrado para el tipo de cifrado.

Nota:

Si quiere aprovechar el cifrado en contexto y usa claves existentes, asegúrese de seleccionar claves habilitadas para enclave, anotadas con (habilitado para enclave).

Nota:

El asistente no admite operaciones criptográficas en tablas temporales y en memoria. Puede crear tablas temporales o en memoria vacías con Transact-SQL, e insertar datos mediante su aplicación.

Página de configuración de la clave maestra

Si ha seleccionado una clave de cifrado de columnas generada automáticamente para cualquier columna de la página anterior, en esta página deberá seleccionar una clave maestra de columna existente o configurar una nueva clave maestra de columna que cifre la clave de cifrado de columnas.

A la hora de configurar una nueva clave maestra de columna, puede elegir una clave existente en el almacén de certificados de Windows o en Azure Key Vault y hacer que el asistente cree un objeto de metadatos para la clave en la base de datos, o puede generar la clave y el objeto de metadatos que describe la clave en la base de datos.

Para usar el cifrado en contexto, asegúrese de seleccionar Permitir cálculos de enclave para una nueva clave maestra de columna. La selección de esta casilla solo se permite si la base de datos está configurada con un enclave seguro.

Para obtener más información acerca de cómo crear y almacenar claves maestras de columna en el almacén de certificados de Windows, en Azure Key Vault o en otros almacenes de claves, vea Creación y almacenamiento de claves maestras de columna para Always Encrypted o Administración de claves para Always Encrypted con enclaves seguros.

Sugerencia

El asistente solo le permite buscar y crear claves en el almacén de certificados de Windows y en Azure Key Vault. También genera automáticamente los nombres de las nuevas claves y los objetos de metadatos de la base de datos que describen las claves. Si necesita más control sobre la manera en que se aprovisionan las claves (y más opciones para un almacén de claves que contenga su clave maestra de columna), puede usar los cuadros de diálogo Nueva clave maestra de columna y Nueva clave de cifrado de columnas para crear las claves y, después, ejecute el asistente y seleccione las claves que ha generado. Vea Aprovisionamiento de claves maestras de columna con el cuadro de diálogo Nueva clave maestra de columna o Aprovisionamiento de claves habilitadas para el enclave y Aprovisionamiento de claves de cifrado de columnas con el cuadro de diálogo Nueva clave de cifrado de columnas.

Página de configuración de cifrado local

Si ha configurado un enclave seguro en la base de datos y usa claves habilitadas para el enclave, esta página le permite especificar los parámetros de atestación del enclave, necesarios para el cifrado en contexto. Si no desea usar el cifrado en contexto, anule la selección de Usar cifrado local para las columnas aptas para continuar con el cifrado del lado cliente. Se recomienda dejar esta casilla habilitada para que el asistente pueda usar el cifrado local.

Para más información sobre la atestación de enclave, consulte Configuración de la atestación para Always Encrypted mediante Azure Attestation

Pasos siguientes

Consulte también