Identidades administradas para el cifrado de datos transparente con la clave administrada por el cliente

Se aplica a:Azure SQL DatabaseAzure SQL Managed Instance

Microsoft Entra ID anteriormente Azure Active Directory proporciona automáticamente una identidad administrada para autenticarse en cualquier servicio de Azure que admita la autenticación de Microsoft Entra, como Azure Key Vault, sin exponer las credenciales en el código. Para más información, vea Tipos de identidad administrada en Azure.

Las identidades administradas pueden ser de dos tipos:

  • Asignada por el sistema
  • Asignada por el usuario

Para más información, vea Identidades administradas en Microsoft Entra ID para Azure SQL.

Para TDE con clave administrada por el cliente (CMK) en Azure SQL, se usa una identidad administrada en el servidor para proporcionar derechos de acceso al servidor en el almacén de claves. Por ejemplo, la identidad administrada asignada por el sistema del servidor debe proporcionarse con permisos de almacén de claves antes de habilitar TDE con CMK en el servidor.

Además de la identidad administrada asignada por el sistema que ya es compatible con TDE mediante CMK, se puede usar una identidad administrada asignada por el usuario (UMI) al servidor para permitir que el servidor acceda al almacén de claves. Un requisito previo para habilitar el acceso al almacén de claves es asegurarse de que a la identidad administrada asignada por el usuario se le han proporcionado los permisos Get, wrapKey y unwrapKey en el almacén de claves. Puesto que la identidad administrada asignada por el usuario es un recurso independiente que se puede crear y al que se puede conceder acceso al almacén de claves, ahora puede habilitar TDE con una clave administrada por el cliente en el momento de la creación para el servidor o la base de datos.

Nota

Para asignar una identidad administrada asignada por el usuario al servidor lógico o a la instancia administrada, un usuario debe tener el rol de Azure RBAC Colaborador de SQL Server o Colaborador de SQL Managed Instance junto con cualquier otro rol de Azure RBAC que contenga la acción Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action.

Ventajas de usar UMI para TDE administrado por el cliente

  • Permite autorizar previamente el acceso al almacén de claves para servidores lógicos o instancias administradas de Azure SQL creando una identidad administrada asignada por el usuario y concediéndole acceso al almacén de claves, incluso antes de que se haya creado el servidor o la base de datos.

  • Permite crear un servidor lógico de Azure SQL con TDE y CMK habilitados.

  • Permite asignar la misma identidad administrada asignada por el usuario a varios servidores, lo que elimina la necesidad de activar individualmente la identidad administrada asignada por el sistema para cada servidor lógico o instancia administrada de Azure SQL y proporcionarle acceso al almacén de claves.

  • Proporciona la capacidad de exigir CMK en el momento de crear servidores con una directiva de Azure integrada disponible.

Consideraciones al usar UMI para TDE administrado por el cliente

  • De forma predeterminada, TDE en Azure SQL usa el conjunto de identidades administradas asignadas por el usuario principal en el servidor para el acceso al almacén de claves. Si no se han asignado identidades asignadas por el usuario al servidor, la identidad administrada asignada por el sistema del servidor se usa para el acceso al almacén de claves.
  • Al usar una identidad administrada asignada por el usuario para TDE con CMK, asigne la identidad al servidor y establézcala como la identidad principal para el servidor.
  • La identidad administrada asignada por el usuario principal requiere acceso continuo al almacén de claves (permisos get, wrapKey, unwrapKey). Si se revoca el acceso de la identidad al almacén de claves o no se proporcionan permisos suficientes, la base de datos pasará al estado Inaccesible.
  • Si la identidad administrada asignada por el usuario principal se actualiza a una identidad administrada asignada por el usuario distinta, a la nueva identidad se le deben conceder los permisos necesarios para el almacén de claves antes de actualizar la identidad principal.
  • Para cambiar el servidor de la identidad administrada asignada por el usuario a la identidad administrada asignada por el sistema para el acceso al almacén de claves, proporcione a la identidad administrada asignada por el sistema los permisos necesarios para el almacén de claves y, después, quite del servidor todas las identidades administradas asignadas por el usuario.

Importante

La identidad administrada asignada por el usuario principal que se usa para TDE con CMK no se debe eliminar de Azure. Si se elimina esta identidad, el servidor perderá el acceso al almacén de claves y las bases de datos quedarán inaccesibles.

Limitaciones y problemas conocidos

  • Si el almacén de claves está detrás de una red virtual que usa un firewall, la opción para Permitir que los servicios de confianza de Microsoft omitan este firewall debe habilitarse en el menú Redes del almacén de claves si quiere usar una identidad administrada asignada por el usuario o una identidad administrada asignada por el sistema. Una vez habilitada esta opción, las claves disponibles no se pueden enumerar en el menú TDE de SQL Server de Azure Portal. Para establecer una CMK individual, se debe usar un identificador de clave. Cuando la opción Permitir que los servicios de confianza de Microsoft omitan el firewall no está habilitada, se devuelve el siguiente error:
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
    • Si recibe el error anterior, compruebe si el almacén de claves está detrás de una red virtual o un firewall y asegúrese de que la opción Permitir que los servicios de confianza de Microsoft omitan este firewall está habilitada.
  • La identidad administrada asignada por el usuario para instancias de SQL Managed Instance solo se admite actualmente en almacenes de claves que tienen acceso público desde todas las redes habilitadas. No se admite cuando el firewall de AKV filtra redes virtuales y direcciones IP específicas o lo hace mediante conexiones de punto de conexión privado.
  • Cuando se asignan varias identidades administradas asignadas por el usuario al servidor o a la instancia administrada, si se quita una única identidad del servidor desde el panel Identidad de Azure Portal, la operación se realizará correctamente, pero la identidad no se eliminará del servidor. La eliminación de todas las identidades administradas asignadas por el usuario desde Azure Portal funciona correctamente.
  • Cuando el servidor o la instancia administrada están configurados con TDE administrado por el cliente y las identidades administradas asignadas por el sistema y asignadas por el usuario están habilitadas en el servidor, eliminar del servidor las identidades administradas asignadas por el usuario sin conceder acceso primero a la identidad administrada asignada por el sistema al almacén de claves generará un mensaje Error inesperado. Asegúrese de que se haya concedido acceso a la identidad administrada asignada por el sistema al almacén de claves antes de eliminar del servidor la identidad administrada asignada por el usuario principal y cualquier otra identidad administrada asignada por el usuario.

Pasos siguientes

Consulte también