Compartir a través de


Administración de identidades y claves para TDE con claves administradas por el cliente en el nivel de base de datos

Se aplica a: Azure SQL Database

Nota:

  • TDE CMK de nivel de base de datos está disponible para Azure SQL Database (todas las ediciones de SQL Database). No está disponible para Azure SQL Managed Instance, instancias locales de SQL Server, VM de Azure y Azure Synapse Analytics (grupos de SQL dedicados [anteriormente SQL DW]).
  • La misma guía se puede aplicar para configurar claves administradas por el cliente en el nivel de base de datos en el mismo inquilino mediante la exclusión del parámetro de id. de cliente federado. Para obtener más información sobre las claves administradas por el cliente en el nivel de base de datos, consulte Cifrado de datos transparente (TDE) con claves administradas por el cliente en el nivel de base de datos.

En esta guía, se describen los pasos para crear, actualizar y recuperar una instancia de Azure SQL Database con cifrado de datos transparente (TDE) y claves administradas por el cliente (CMK) en el nivel de base de datos, utilizando una identidad administrada asignada por el usuario para acceder a Azure Key Vault. Azure Key Vault se encuentra en un inquilino de Microsoft Entra diferente al de Azure SQL Database. Para más información, consulte Claves administradas por el cliente entre inquilinos con cifrado de datos transparente

Nota:

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

Requisitos previos

Recursos necesarios en el primer inquilino

Para este tutorial, asumiremos que el primer inquilino pertenece a un proveedor de software independiente (ISV) y que el segundo inquilino procede de su cliente. Para más información sobre este escenario, consulte Claves administradas por el cliente entre inquilinos con cifrado de datos transparente.

Antes de poder configurar TDE para Azure SQL Database con CMK entre inquilinos, es necesario tener una aplicación de Microsoft Entra multiinquilino configurada con una identidad administrada asignada por el usuario asignada como credencial de identidad federada para la aplicación. Siga una de las guías de requisitos previos.

  1. En el primer inquilino en el que quiera crear la instancia de Azure SQL Database, cree y configure una aplicación de Microsoft Entra multiinquilino.

  2. Creación de una identidad administrada asignada por el usuario.

  3. Configure la identidad administrada asignada por el usuario como una credencial de identidad federada para la aplicación multiinquilino.

  4. Registre el nombre e id. de la aplicación. Esta información se puede encontrar en Azure Portal>Microsoft Entra ID>Aplicaciones empresariales y, después, buscar la aplicación creada.

Recursos necesarios en el segundo inquilino

Nota:

Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. Para obtener más información, lea la actualización de desuso. Desde esta fecha, el soporte de estos módulos se limita a la asistencia de migración al SDK de PowerShell de Microsoft Graph y a las correcciones de seguridad. Los módulos en desuso seguirán funcionando hasta el 30 de marzo de 2025.

Se recomienda migrar a PowerShell de Microsoft Graph para interactuar con Microsoft Entra ID (anteriormente Azure AD). Para preguntas comunes sobre la migración, consulte las Preguntas más frecuentes sobre migración. Nota: Las versiones 1.0.x de MSOnline pueden experimentar interrupciones después del 30 de junio de 2024.

  1. En el segundo inquilino donde reside Azure Key Vault, cree una entidad de servicio (aplicación) mediante el id. de aplicación de la aplicación registrada desde el primer inquilino. Estos son algunos ejemplos de cómo registrar la aplicación multiinquilino. Reemplace <TenantID> y <ApplicationID> por el valor de Identificador de inquilino cliente de Microsoft Entra ID y el valor de Identificador de la aplicación de la aplicación multiinquilino, respectivamente:

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • La CLI de Azure:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Vaya a Azure Portal>Microsoft Entra ID>Aplicaciones empresariales y busque la aplicación que se ha creado.

  3. Cree una instancia de Azure Key Vault si no tiene una y cree una clave.

  4. Cree o establezca la directiva de acceso.

    1. Seleccione los permisos Obtener, Encapsular clave, Desencapsular clave en Permisos de clave al crear la directiva de acceso.
    2. Seleccione la aplicación multiinquilino creada en el primer paso de la opción Entidad de seguridad al crear la directiva de acceso.

    Captura de pantalla del menú de directiva de acceso de un almacén de claves en Azure Portal.

  5. Una vez creada la directiva de acceso y la clave, recupere la clave de Key Vault y registre el identificador de clave.

Creación de una base de datos Azure SQL con claves administradas por el cliente en el nivel de base de datos

A continuación se muestran ejemplos para crear una base de datos en Azure SQL Database con una identidad administrada asignada por el usuario y cómo establecer una clave administrada por el cliente entre inquilinos en el nivel de base de datos. La identidad administrada asignada por el usuario es necesaria para configurar una clave administrada por el cliente para el cifrado de datos transparente durante la fase de creación de la base de datos.

  1. Vaya a la página Seleccione una opción de implementación de SQL en Azure Portal.

  2. Si aún no ha iniciado sesión en Azure Portal, hágalo cuando se le solicite.

  3. En Bases de datos SQL, deje Tipo de recurso establecido en Base de datos única y seleccione Crear.

  4. En la pestaña Conceptos básicos del formulario Crear base de datos SQL, en Detalles del proyecto, seleccione la suscripción de Azure, el grupo de recursos y el servidor que desee para la base de datos. Luego, use un nombre único para el nombre de la base de datos. Si no ha creado un servidor lógico para Azure SQL Database, consulte Creación de un servidor configurado con TDE con una clave administrada por el cliente entre inquilinos (CMK) como referencia.

  5. Cuando llegue a la pestaña Seguridad, seleccione Configurar cifrado de datos transparente.

    Captura de pantalla de Azure Portal y el menú Seguridad al crear una instancia de Azure SQL Database.

  6. En el menú Cifrado de datos transparente, seleccione Clave administrada del cliente (CMK) de nivel de base de datos.

    Captura de pantalla del menú de cifrado de datos transparente de Azure Portal.

  7. En Identidad administrada asignada por el usuario, seleccione Configurar para habilitar una identidad de base de datos y agregar una identidad administrada asignada por el usuario al recurso si una identidad deseada no aparece en el menú Identidad. Luego, seleccione Aplicar.

    Captura de pantalla del menú Identidad de Azure Portal.

    Nota

    Puede configurar la identidad de cliente federado aquí si va a configurar CMK entre inquilinos para TDE.

  8. En el menú Cifrado de datos transparente, seleccione Cambiar clave. Seleccione la Subscription deseada, el Almacén de claves, la Clave y la Versión para la clave administrada por el cliente que se usará para TDE. Seleccione el botón Seleccionar. Tras seleccionar una clave, también puede agregar tantas claves de base de datos como sea necesario mediante el URI de Azure Key Vault (identificador de objeto) en el menú Cifrado de datos transparente.

    La rotación automática de claves también se puede habilitar en el nivel de base de datos mediante la casilla Girar automáticamente la clave en el menú Cifrado de datos transparente.

    Captura de pantalla del menú de cifrado de datos transparente de Azure Portal en el que se hace referencia a la incorporación de claves adicionales.

  9. Seleccione Aplicar para continuar con la creación de la base de datos.

  10. En la parte inferior de la página, seleccione Revisar y crear.

  11. En la página Revisar y crear, después de revisar, seleccione Crear.

Nota

Si la identidad administrada asignada por el usuario no tiene los permisos adecuados habilitados en el almacén de claves, la base de datos no se creará. La identidad administrada asignada por el usuario necesitará los permisos Get, wrapKey y unwrapKey en el almacén de claves. Para más información, consulte Identidades administradas para el cifrado de datos transparente con la clave administrada por el cliente.

Actualización de una instancia de Azure SQL Database con claves administradas por el cliente en el nivel de base de datos

A continuación se muestran ejemplos para actualizar una base de datos existente en Azure SQL Database con una identidad administrada asignada por el usuario y cómo establecer una clave administrada por el cliente entre inquilinos en el nivel de base de datos. La identidad administrada asignada por el usuario es necesaria para configurar una clave administrada por el cliente para el cifrado de datos transparente durante la fase de creación de la base de datos.

  1. En Azure portal, vaya al recurso de la base de datos de SQL que quiera actualizar con una clave administrada por el cliente de nivel de base de datos.

  2. En Seguridad, seleccione Identidad. Agregue una identidad administrada asignada por el usuario a esta base de datos y seleccione Guardar.

  3. Ahora vaya al menú Cifrado de datos transparente en Seguridad de la base de datos. Seleccione Clave administrada por el cliente (CMK) de nivel de base de datos. La identidad de la base de datos ya debe estar habilitada, porque se ha configurado en el último paso.

  4. Seleccione Cambiar clave. Seleccione la Subscription deseada, el Almacén de claves, la Clave y la Versión para la clave administrada por el cliente que se usará para TDE. Seleccione el botón Seleccionar. Tras seleccionar una clave, también puede agregar tantas claves de base de datos como sea necesario mediante el URI de Azure Key Vault (identificador de objeto) en el menú Cifrado de datos.

    Active la casilla Rotación automática de claves si quiere habilitar la rotación automática de claves en el nivel de base de datos.

    Captura de pantalla del menú de cifrado de datos transparente de Azure Portal cuando se actualiza una base de datos existente.

  5. Seleccione Guardar.

Visualización de la configuración de clave administrada por el cliente de nivel de base de datos en una instancia de Azure SQL Database

A continuación se muestran ejemplos de recuperación de las claves administradas por el cliente de nivel de base de datos para una base de datos. El recurso Microsoft.Sql/servers/databases de ARM, de forma predeterminada, solo muestra el protector de TDE y la identidad administrada configurada en la base de datos. Para expandir la lista completa de claves, use el parámetro -ExpandKeyList. Además, se pueden usar filtros, como -KeysFilter "current", y un valor de un momento dado (por ejemplo, 2023-01-01) para recuperar las claves actuales usadas y las claves usadas en el pasado en un momento dado específico. Estos filtros solo se admiten para consultas de base de datos individuales y no para consultas de nivel de servidor.

Para ver las claves administradas por el cliente de nivel de base de datos en Azure Portal, vaya al menú Cifrado de datos del recurso de base de datos SQL.

Enumeración de todas las claves de un servidor lógico

Para capturar la lista de todas las claves (y no solo el protector principal) usadas por cada base de datos en el servidor, debe consultarse individualmente con los filtros de clave. A continuación se muestra un ejemplo de una consulta de PowerShell para enumerar cada clave en el servidor lógico.

Use el cmdlet Get-AzSqlDatabase.

$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}

Revalidación de la clave administrada por el cliente de nivel de base de datos en una instancia de Azure SQL Database

En el caso de que haya algún protector de TDE al que no se pueda acceder, tal como se describe en Cifrado de datos transparente (TDE) con CMK, una vez que se haya corregido el acceso a la clave, se puede usar la operación de revalidación de clave para que se pueda acceder a la base de datos. En las siguientes instrucciones encontrará ejemplos al respecto.

Utilice Azure Portal para busque el recurso de base de datos SQL. Una vez que haya seleccionado el recurso de base de datos SQL, vaya a la pestaña Cifrado de datos transparente del menú Cifrado de datos en la configuración de Seguridad. Si la base de datos ha perdido el acceso a Azure Key Vault, aparecerá un botón Volver a validar la clave y tendrá la opción de volver a validar la clave existente seleccionando Reintentar clave existente u otra clave, para lo que debería elegir Seleccionar la clave de copia de seguridad.

Reversión de la clave administrada por el cliente de nivel de base de datos en una instancia de Azure SQL Database

Una base de datos configurada con CMK de nivel de base de datos se puede revertir al cifrado de nivel de servidor si el servidor está configurado con una clave administrada por el servicio mediante los siguientes comandos.

Para revertir el valor de la clave administrada por el cliente de nivel de base de datos a la clave de cifrado de nivel de servidor en Azure Portal, vaya a la pestaña Cifrado de datos transparente del menú Cifrado de datos del recurso de base de datos SQL. Seleccione Clave de cifrado de nivel de servidor y seleccione Guardar para guardar la configuración.

Nota

Para usar el valor Clave de cifrado de nivel de servidor para bases de datos individuales, el servidor lógico de Azure SQL Database debe configurarse para usar la clave administrada por el servicio para TDE.

Pasos siguientes

Consulte la siguiente documentación sobre varias operaciones de CMK en el nivel de base de datos: