Eliminación de un protector de Cifrado de datos transparente (TDE) con PowerShell

Se aplica a:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (solo grupos SQL dedicados)

En este artículo se describe cómo responder a un protector de TDE potencialmente en peligro en Azure SQL Database o Azure Synapse Analytics que usa TDE con claves administradas por el cliente en Azure Key Vault y compatibilidad con Bring Your Own Key (BYOK). Para más información sobre la compatibilidad con BYOK para TDE, consulte la página de introducción.

Precaución

Los procedimientos que se detallan en este artículo deben realizarse únicamente en casos extremos o en entornos de prueba. Revise los pasos detenidamente, ya que si se eliminan de Azure Key Vault protectores de TDE que se usan activamente, la base de datos dejará de estar disponible.

Si alguna vez se sospecha que una clave está en riesgo, de modo que un servicio o usuario ha tenido acceso no autorizado a la clave, lo mejor es eliminarla.

Tenga en cuenta que una vez que el protector de TDE se elimina en Key Vault, en un plazo máximo de 10 minutos todas las bases de datos cifradas comenzarán a denegar todas las conexiones con el mensaje de error correspondiente y su estado cambiará a Inaccesible.

Esta guía paso a paso analiza el método para hacer que las bases de datos sean inaccesibles al responder a un incidente de una clave en peligro.

Nota

Este artículo se aplica a Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics [grupos de SQL dedicados (antes conocidos como SQL DW)]. Para obtener documentación sobre el Cifrado de datos transparente para grupos de SQL dedicados en áreas de trabajo de Synapse, consulte Cifrado de Azure Synapse Analytics.

Requisitos previos

  • Debe tener una suscripción de Azure y ser un administrador en esa suscripción.
  • Es preciso tener instalado y en ejecución Azure PowerShell.
  • En esta guía de procedimientos se asume que ya utiliza una clave de Azure Key Vault como protector de TDE para Azure SQL Database o Azure Synapse. Para más información, consulte Cifrado de datos transparente con compatibilidad con BYOK.

Para obtener instrucciones sobre la instalación del módulo Az, consulte Instalación de Azure PowerShell. Para los cmdlets concretos, consulte AzureRM.Sql. Use el nuevo módulo Az de Azure PowerShell.

Comprobación de huellas digitales del protector de TDE

En los siguientes pasos se describe cómo comprobar las huellas digitales de Protector de TDE que los archivos de registro virtual (VLF) de una base de datos determinada siguen utilizando. Encontrará la huella digital del protector de TDE actual de la base de datos y el identificador de base de datos al ejecutar lo siguiente:

SELECT [database_id],
       [encryption_state],
       [encryptor_type], /*asymmetric key means AKV, certificate means service-managed keys*/
       [encryptor_thumbprint]
 FROM [sys].[dm_database_encryption_keys]

La siguiente consulta devuelve los VLF y las huellas digitales correspondientes del protector de TDE que están en uso. Cada una de las distintas huellas digitales hace referencia a otra clave en Azure Key Vault (AKV):

SELECT * FROM sys.dm_db_log_info (database_id)

Como alternativa, puede usar PowerShell o la CLI de Azure:

El comando de PowerShell Get-AzureRmSqlServerKeyVaultKey proporciona la huella digital del Protector de TDE usado en la consulta para que pueda ver qué claves conservar y qué claves eliminar en AKV. Solo las claves que ya no usa la base de datos se pueden eliminar de forma segura de Azure Key Vault.

Mantener accesibles los recursos cifrados

  1. Cree una nueva clave en Key Vault. Asegúrese de que esta nueva clave se crea en un almacén de claves independiente desde el protector de TDE potencialmente comprometido, ya que el control de acceso se aprovisiona en un nivel de almacén.

  2. Agregue la nueva clave al servidor mediante los cmdlets Add-AzSqlServerKeyVaultKey y Set-AzSqlServerTransparentDataEncryptionProtector y actualícela como el nuevo protector de TDE del servidor.

    # add the key from Key Vault to the server  
    Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
    
    # set the key as the TDE protector for all resources under the server
    Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -ServerName <LogicalServerName> -Type AzureKeyVault -KeyId <KeyVaultKeyId>
    
  3. Asegúrese de que el servidor y las réplicas se han actualizado al nuevo protector de TDE con el cmdlet Get-AzSqlServerTransparentDataEncryptionProtector.

    Nota:

    El nuevo protector de TDE puede tardar unos minutos en propagarse a todas las bases de datos y a las bases de datos secundarias del servidor.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Realice una copia de seguridad de la nueva clave en Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Elimine la clave comprometida de Key Vault mediante el cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Para restaurar una clave en Key Vault en el futuro mediante el cmdlet Restore-AzKeyVaultKey.

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

Convertir los recursos cifrados en inaccesibles

  1. Quite las bases de datos que se están cifrando por la clave potencialmente comprometida.

    La copia de seguridad de la base de datos y los archivos de registro se realiza automáticamente, por lo que se puede realizar una restauración a un momento dado de la base de datos en cualquier momento (siempre y cuando se proporcione la clave). Las bases de datos deben eliminarse antes de eliminar un protector TDE activo para evitar la pérdida potencial de datos de hasta 10 minutos de las transacciones más recientes.

  2. Realice una copia de seguridad del material de la clave del protector de TDE en Key Vault.

  3. Eliminación de la clave potencialmente comprometida de Key Vault.

Nota:

Los cambios de permisos pueden tardar unos 10 minutos en surtir efecto en el almacén de claves. Esto incluye revocar los permisos de acceso al protector de TDE en AKV; los usuarios dentro de este período de tiempo pueden seguir teniendo permisos de acceso.