Errores comunes en el cifrado de datos transparente con claves administradas por el cliente en Azure Key Vault

Se aplica a:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

En este artículo se describe cómo identificar y resolver los problemas de acceso a la clave de Azure Key Vault que causaron que una base de datos configurada para utilizar el cifrado de datos transparente (TDE) de con claves administradas por el cliente en Azure Key Vault dejara de estar accesible.

Nota:

Microsoft Entra ID conocido anteriormente como Azure Active Directory (Azure AD).

Introducción

Cuando TDE está configurado para usar una clave administrada por el cliente en Azure Key Vault, es necesario el acceso continuo a este protector de TDE para que la base de datos esté en línea. Si la instancia de SQL Server lógica o la instancia administrada pierde el acceso al protector de TDE administrado por el cliente en Azure Key Vault, una base de datos empezará a denegar todas las conexiones con su correspondiente mensaje de error y cambiará su estado a Inaccesible en Azure Portal.

Durante las primeras 30 horas, si se resuelve el problema de acceso a la clave de Azure Key Vault subyacente, la base de datos se restaurará y se conectará en línea automáticamente. Esto significa que para todos los escenarios de interrupción de la red intermitentes y temporales, no se requiere ninguna acción del usuario y la base de datos se conectará en línea automáticamente. En la mayoría de los casos, se requiere la intervención del usuario para resolver el problema de acceso a la clave del almacén de claves subyacente.

Si ya no se necesita una base de datos inaccesible, puede eliminarse inmediatamente para dejar de incurrir en gastos. No se permiten todas las demás acciones en la base de datos hasta que se restaure el acceso a la clave de Azure Key Vault y la base de datos vuelva a estar en línea. Tampoco es posible cambiar en el servidor la opción de TDE de claves administradas por el cliente por la de claves administradas por el servicio mientras una base de datos cifrada con claves administradas por el cliente sea inaccesible. Esto es necesario para proteger los datos contra el acceso no autorizado mientras se han revocado los permisos para el protector de TDE.

Cuando no se pueda obtener acceso a una base de datos durante más de 30 horas, ya no se realizará la restauración automática. Si tras dicho período se ha restaurado el acceso a la clave de Azure Key Vault requerido, debe volver a validar el acceso a la clave manualmente para que la base de datos vuelva a estar en línea. En este caso, volver a poner la base de datos en línea puede tardar una cantidad considerable de tiempo según el tamaño de la base de datos. Una vez que la base de datos vuelva a estar en línea, se perderán los valores configurados previamente, como el grupo de conmutación por error, el historial de PITR y las etiquetas. Por tanto, se recomienda implementar un sistema de notificación mediante Grupos de acciones que permita percatarse y resolver los problemas de acceso a la clave del almacén de claves subyacentes lo antes posible.

Errores comunes que hacen que las bases de datos dejen de estar accesibles

La mayoría de los problemas que se producen cuando se usa TDE con Key Vault se debe a una de las configuraciones erróneas siguientes:

El almacén de claves no está disponible o no existe.

  • El almacén se claves se eliminó por error.
  • El firewall se configuró para Azure Key Vault, pero no permite acceso a los servicios de Microsoft.
  • Un error de red intermitente hace que el almacén de claves no esté disponible.

No existen permisos para acceder al almacén de claves o la clave no existe.

  • La clave se ha eliminado accidentalmente, se ha deshabilitado o ha expirado.
  • La identidad administrada del servidor (asignada por el sistema o asignada por el usuario) se eliminó accidentalmente.
  • El servidor se movió a otra suscripción. Debe asignarse una nueva identidad administrada (asignada por el sistema o asignada por el usuario) al servidor cuando se mueve a otra suscripción.
  • Los permisos concedidos a la identidad administrada del servidor para las claves no son suficientes (no incluyen los permisos Get, Wrap ni Unwrap).
  • Los permisos para la identidad administrada del servidor se revocaron del almacén de claves.

Identificación y resolución de los errores comunes

En esta sección, se muestran los pasos para resolver los errores más comunes.

Falta la auditoría de servidor.

Mensaje de error

401 AzureKeyVaultNoServerIdentity: la identidad del servidor no se ha configurado correctamente en el servidor. Póngase en contacto con el soporte técnico.

Detección

Use el siguiente cmdlet o comando para asegurarse de que se ha asignado una identidad al servidor:

Solución

Use el siguiente cmdlet o comando para configurar una identidad administrada asignada por el usuario o asignada por el sistema para el servidor:

En Azure Portal, vaya al almacén de claves y, luego, a Directivas de acceso. Siga estos pasos:

  1. Use el botón Agregar nuevo para agregar la AppId del servidor que creó en el paso anterior.
  2. Asigne los siguientes permisos de clave: Get, Wrap y Unwrap

Para más información, vea Asignación de una entidad administrada al servidor.

Importante

Si el servidor lógico para Azure SQL Database o Azure SQL Managed Instance se mueve a un nuevo inquilino de Microsoft Entra después de la configuración inicial de TDE con Key Vault, esta configuración de identidad administrada se debe rehacer en el nuevo inquilino.

Falta el almacén de claves

Mensaje de error

503 AzureKeyVaultConnectionFailed: la operación no ha podido completarse en el servidor debido a que se ha producido un error al intentar conectarse a Azure Key Vault.

Detección

Para identificar un URI de clave y el almacén de claves:

  1. Use el comando o el cmdlet siguiente para obtener el URI de clave de una instancia de servidor específica:

  2. Use el URI de clave para identificar el almacén de claves:

    • Azure PowerShell: se pueden inspeccionar las propiedades de la variable $MyServerKeyVaultKey para obtener detalles sobre el almacén de claves.

    • Azure CLI: inspeccione el protector de cifrado de servidor devuelto para obtener más información sobre el almacén de claves.

Solución

Confirme que el almacén de claves está disponible:

  • Asegúrese de que el almacén de claves está disponible y de que el servidor tiene acceso.
  • Si el almacén de claves está protegido detrás de un firewall, asegúrese de que la casilla para permitir que los servicios de Microsoft pueden acceder al almacén de claves esté activada.
  • Si el almacén de claves se eliminó por error, debe completar la configuración desde el inicio.

Falta una clave

Mensajes de error

404 ServerKeyNotFound: no se ha encontrado la clave de servidor solicitada en la suscripción actual.

409 ServerKeyDoesNotExists: la clave del servidor no existe.

Detección

Para identificar un URI de clave y el almacén de claves:

  • Use el cmdlet o los comandos que aparecen en Falta el almacén de claves para identificar el URI de clave que se agrega a la instancia de SQL Server lógica. La ejecución de los comandos devuelve la lista de las claves.

Solución

Confirme que el protector de TDE está presente en Key Vault:

  1. Identifique el almacén de claves y vaya a él en Azure Portal.
  2. Asegúrese de que está la clave identificada por el URI de clave.

Faltan permisos

Mensaje de error

401 AzureKeyVaultMissingPermissions: el servidor no encuentra los permisos necesarios en Azure Key Vault.

Detección

Para identificar el URI de clave y el almacén de claves:

  • Use el cmdlet o los comandos que aparecen en Falta el almacén de claves para identificar el almacén de claves que se usa en la instancia de SQL Server lógica.

Solución

Confirme que el servidor tiene permisos para que el almacén de claves y los permisos correctos puedan acceder a la clave:

  • En Azure Portal, vaya al almacén de claves >Directivas de acceso. Busque la identidad administrada del servidor (asignada por el sistema o asignada por el usuario).
  • Si la identidad del servidor está presente, asegúrese de que tiene los siguientes permisos clave: Get, WrapKey y UnwrapKey.
  • Si la identidad del servidor no está, agréguela con el botón Agregar nuevo.

Obtención del estado de TDE del registro de actividad

Para permitir la supervisión del estado de la base de datos debido a problemas de acceso a la clave de Azure Key Vault, se registrarán los siguientes eventos en el Registro de actividad para el identificador de recurso en función de la dirección URL de Azure Resource Manager.

Nota:

Los eventos pueden tardar entre 15 y 30 minutos en aparecer en el registro de actividad desde el momento en que se produce el problema de acceso al almacén de claves.

Evento cuando el servicio pierde el acceso a la clave de Azure Key Vault

Azure SQL Database

EventName: MakeDatabaseInaccessible

Estado: Iniciado

Descripción: la base de datos {database_name} en el servidor {server_name} ha perdido el acceso a Azure Key Vault Key y ahora está pasando a un estado inaccesible.

Instancia administrada de Azure SQL

EventName: MakeManagedDbInaccessible

Estado: Iniciado

Descripción: la base de datos {database_name} en el servidor administrado {server_name} ha perdido el acceso a Azure Key Vault Key y ahora está pasando a un estado inaccesible.

Evento cuando el problema no se ha resuelto en 30 minutos y el acceso a la clave de Azure Key Vault debe validarse manualmente

Azure SQL Database

EventName: MakeDatabaseInaccessible

Estado: Correcto

Descripción: No se puede tener acceso a la base de datos y el usuario debe resolver los errores del almacén de claves de Azure y restablecer el acceso a la clave del almacén de claves de Azure mediante la clave de revalidación.

Instancia administrada de Azure SQL

EventName: MakeManagedDbInaccessible

Estado: Correcto

Descripción: La base de datos {database_name} en el servidor administrado{server_name} no es accesible y requiere que el usuario vuelva a establecer el acceso a la clave de Azure Key Vault.

Evento cuando la revalidación del acceso a la clave de Azure Key Vault se ha realizado correctamente y la base de datos vuelve a estar en línea

Azure SQL Database

EventName: MakeDatabaseAccessible

Estado: Iniciado

Descripción: Se ha restablecido el acceso a la clave de Azure Key Vault, se ha iniciado la operación para hacer accesible la base de datos {database_name} en el servidor {server_name}.

Instancia administrada de Azure SQL

EventName: MakeManagedDatabaseAccessible

Estado: Iniciado

Descripción: Se ha restablecido el acceso a la clave de Azure Key Vault, se ha iniciado la operación para hacer accesible la base de datos {database_name} en el servidor administrado {server_name}.

Evento cuando la base de datos vuelve a estar en línea correctamente

Azure SQL Database

EventName: MakeDatabaseAccessible

Estado: Correcto

Descripción: Se ha restablecido el acceso a la clave de Azure Key Vault y la base de datos {database_name} del servidor {server_name} ya está en línea.

Instancia administrada de Azure SQL

EventName: MakeManagedDatabaseAccessible

Estado: Correcto

Descripción: Se ha restablecido el acceso a la clave de Azure Key Vault y la base de datos {database_name} del servidor administrado {server_name} ya está en línea.

Evento cuando se ha producido un error en la revalidación del acceso a la clave de Azure Key Vault

Azure SQL Database

EventName: MakeDatabaseAccessible

Estado: Error

Descripción: Se ha restablecido el acceso a la clave de Azure Key Vault, la operación para hacer accesible la base de datos {database_name} en el servidor {server_name} dio error.

Instancia administrada de Azure SQL

EventName: MakeManagedDatabaseAccessible

Estado: Error

Descripción: Se ha restablecido el acceso a la clave de Azure Key Vault, la operación para hacer accesible la base de datos {database_name} en el servidor administrado {server_name} dio error.

Pasos siguientes

  • Obtenga información sobre Azure Resource Health.
  • Configure los Grupos de acciones para recibir notificaciones y alertas en función de sus preferencias, por ejemplo, correo electrónico/SMS/inserciones/voz, aplicación lógica, webhook, ITSM o Runbook de automatización.