Configuración de claves administradas por el cliente entre inquilinos para una cuenta de almacenamiento existente

Azure Storage cifra todos los datos de las cuentas de almacenamiento en reposo. De manera predeterminada, los datos se cifran con claves administradas por Microsoft. Para tener un mayor control sobre las claves de cifrado, puede administrar sus propias claves. Las claves administradas por el cliente deben estar almacenadas en Azure Key Vault o en el modelo de seguridad de hardware (HSM) administrado de Azure Key Vault.

En este artículo se muestra cómo configurar el cifrado con claves administradas por el cliente para una cuenta de almacenamiento existente. En el escenario entre inquilinos, la cuenta de almacenamiento reside en un inquilino administrado por un ISV, mientras que la clave usada para el cifrado de esa cuenta de almacenamiento reside en un almacén de claves de un inquilino administrado por el cliente.

Para aprender a configurar claves administradas por el cliente para una nueva cuenta de almacenamiento, consulte Configuración de claves administradas por el cliente entre inquilinos para una nueva cuenta de almacenamiento.

Nota:

Azure Key Vault y HSM administrado por Azure Key Vault admiten las mismas API e interfaces de administración para la configuración de claves administradas por el cliente. Cualquier acción que se admita para Azure Key Vault también se admite para HSM administrado por Azure Key Vault.

Información sobre las claves administradas por el cliente entre inquilinos

Muchos proveedores de servicios que crean ofertas de software como servicio (SaaS) en Azure quieren ofrecer a sus clientes la opción de administrar sus propias claves de cifrado. Las claves administradas por el cliente permiten a un proveedor de servicios cifrar los datos del cliente mediante una clave de cifrado administrada por el cliente del proveedor de servicios y a la que no puede acceder el proveedor de servicios. En Azure, el cliente del proveedor de servicios puede usar Azure Key Vault para administrar sus claves de cifrado en su propio inquilino y suscripción de Microsoft Entra.

Los servicios y recursos de la plataforma Azure que pertenecen al proveedor de servicios y que residen en el inquilino del proveedor de servicios requieren acceso a la clave del inquilino del cliente para realizar las operaciones de cifrado y descifrado.

En la imagen siguiente se muestra un cifrado de datos en reposo con identidad federada en un flujo de trabajo de CMK entre inquilinos que abarca un proveedor de servicios y su cliente.

Screenshot showing a cross-tenant CMK with a federated identity.

En el ejemplo anterior, hay dos inquilinos de Microsoft Entra: el inquilino de un proveedor de servicios independiente (Inquilino 1) y el inquilino de un cliente (Inquilino 2). Inquilino 1 hospeda los servicios de la plataforma Azure y Inquilino 2 hospeda el almacén de claves del cliente.

El proveedor de servicios crea un registro de aplicación multiinquilino en el Inquilino 1. El proveedor de servicios configura una credencial de identidad federada en esta aplicación mediante una identidad administrada asignada por el usuario. A continuación, el nombre y el identificador de la aplicación se comparten con el cliente.

Un usuario con los permisos adecuados instala la aplicación del proveedor de servicios en el inquilino del cliente Inquilino 2. A continuación, un usuario concede a la entidad de servicio asociada a la aplicación instalada acceso al almacén de claves del cliente. El cliente también almacena la clave de cifrado, o la clave administrada por el cliente, en el almacén de claves. El cliente comparte la ubicación de la clave (la dirección URL de la clave) con el proveedor de servicios.

El proveedor de servicios ahora tiene lo siguiente:

  • Un identificador de aplicación de una aplicación multiinquilino instalada en el inquilino del cliente, a la que se le ha concedido acceso a la clave administrada por el cliente.
  • Una identidad administrada configurada como credencial en la aplicación multiinquilino.
  • La ubicación de la clave en el almacén de claves del cliente.

Con estos tres parámetros, el proveedor de servicios aprovisiona recursos de Azure en Inquilino 1 que se pueden cifrar con la clave administrada por el cliente en Inquilino 2.

Vamos a dividir la solución de un extremo a otro anterior en tres fases:

  1. El proveedor de servicios configura identidades.
  2. El cliente concede a la aplicación multiinquilino del proveedor de servicios acceso a una clave de cifrado en Azure Key Vault.
  3. El proveedor de servicios cifra los datos de un recurso de Azure mediante la CMK.

Las operaciones de la fase 1 serán una configuración única para la mayoría de las aplicaciones del proveedor de servicios. Las operaciones de las fases 2 y 3 se repetirán para cada cliente.

Fase 1: El proveedor de servicios configura una aplicación de Microsoft Entra

Paso Descripción Rol mínimo en RBAC de Azure Rol mínimo en RBAC de Microsoft Entra
1. Cree un nuevo registro de aplicación multiinquilino de Microsoft Entra o comience con un registro de aplicación existente. Anote el id. de la aplicación (id. de cliente) del registro de la aplicación mediante Azure Portal, Microsoft Graph API, Azure PowerShell o la CLI de Azure. None Desarrollador de aplicaciones
2. Cree una identidad administrada asignada por el usuario (que se usará como credencial de identidad federada).
Azure Portal / CLI de Azure / Azure PowerShell/ Plantillas de Azure Resource Manager
Colaborador de identidad administrada Ninguno
3. Configure la identidad administrada asignada por el usuario como credencial de identidad federada en la aplicación para que pueda suplantar la identidad de la aplicación.
Referencia de Graph API / Azure Portal/ CLI de Azure/ Azure PowerShell
None Propietario de la aplicación
4. Comparta el nombre y el id. de la aplicación con el cliente para que pueda instalar y autorizar la aplicación. None None

Consideraciones para proveedores de servicio

  • No se recomiendan las plantillas de Azure Resource Manager (ARM) para crear aplicaciones de Microsoft Entra.
  • Se puede usar la misma aplicación multiinquilino para acceder a las claves en diversos inquilinos, como Inquilino 2, Inquilino 3, Inquilino 4, etc. En cada inquilino, se crea una instancia independiente de la aplicación que tiene el mismo id. de aplicación, pero un id. de objeto diferente. Por lo tanto, cada instancia de esta aplicación se autoriza de forma independiente. Tenga en cuenta cómo se usa el objeto de aplicación para esta característica a fin de crear particiones de la aplicación en todos los clientes.
  • En raras ocasiones, un proveedor de servicios puede utilizar un único objeto de aplicación por cliente, pero esto requiere importantes costos de mantenimiento para administrar las aplicaciones a gran escala en todos los clientes.
  • En el inquilino del proveedor de servicios, no es posible automatizar la comprobación del publicador.

Fase 2: el cliente autoriza el acceso al almacén de claves

Paso Descripción Roles de RBAC de Azure con privilegios mínimos Roles de Microsoft Entra con privilegios mínimos
1.
  • Recomendado: envíe al usuario para iniciar sesión en la aplicación. Si el usuario puede iniciar sesión, existe una entidad de servicio para la aplicación en su inquilino.
  • Use Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell o la CLI de Azure para crear la entidad de servicio.
  • Construya una dirección URL de consentimiento del administrador y conceda consentimiento para todo el inquilino para crear la entidad de servicio mediante el id. de aplicación.
  • None Usuarios con permisos para instalar aplicaciones
    2. Cree una instancia de Azure Key Vault y una clave usada como clave administrada por el cliente. Se debe asignar a un usuario el rol Colaborador de Key Vault para crear el almacén de claves

    Se debe asignar a un usuario el rol Agente criptográfico de Key Vault para agregar una clave al almacén de claves.
    None
    3. Conceda a la identidad de la aplicación consentida acceso al almacén de claves de Azure mediante la asignación del rol Usuario del cifrado del servicio de cifrado de Key Vault. Para asignar el rol Usuario del cifrado del servicio de cifrado de Key Vault a la aplicación, debe tener asignado el rol Administrador de acceso de usuario. None
    4. Copie la dirección URL del almacén de claves y el nombre de la clave en la configuración de claves administradas por el cliente de la oferta de SaaS. None None

    Nota

    Para autorizar el acceso al HSM administrado para el cifrado mediante CMK, consulte el ejemplo de la Cuenta de almacenamiento aquí. Para más información sobre cómo administrar claves con HSM administrado, consulte Administración de un HSM administrado mediante la CLI de Azure.

    Consideraciones para clientes de proveedores de servicios

    • En el inquilino del cliente Inquilino 2 un administrador puede establecer directivas para impedir que los usuarios que no sean administradores instalen aplicaciones. Estas directivas pueden impedir que los usuarios que no sean administradores creen entidades de servicio. Si se configura una directiva de este tipo, los usuarios con permisos para crear entidades de servicio deberán participar.
    • El acceso a Azure Key Vault se puede autorizar mediante directivas de acceso o RBAC de Azure. Al conceder acceso a un almacén de claves, asegúrese de usar el mecanismo activo para el almacén de claves.
    • Un registro de aplicación de Microsoft Entra tiene un id. de aplicación (id. de cliente). Cuando la aplicación se instala en el inquilino, se crea una entidad de servicio. La entidad de servicio comparte el mismo id. de aplicación que el registro de la aplicación, pero genera su propio id. de objeto. Al autorizar a la aplicación el acceso a los recursos, es posible que tenga que usar la entidad de servicio Name o la propiedad ObjectID.

    Fase 3: el proveedor de servicios cifra los datos de un recurso de Azure mediante la clave administrada por el cliente

    Una vez completadas las fases 1 y 2, el proveedor de servicios puede configurar el cifrado en el recurso de Azure con la clave y el almacén de claves del inquilino del cliente y el recurso de Azure del inquilino del ISV. El proveedor de servicios puede configurar claves administradas por el cliente entre inquilinos con las herramientas del cliente compatibles con ese recurso de Azure, con una plantilla de ARM o con la API REST.

    Configuración de claves administradas por el cliente entre inquilinos

    En esta sección se describe cómo configurar una clave administrada por el cliente (CMK) entre inquilinos y cifrar los datos de los clientes. Obtendrá información sobre cómo cifrar los datos de los clientes en un recurso de Tenant1 mediante una CMK almacenada en un almacén de claves en Tenant2. Puede usar Azure Portal, Azure PowerShell o la CLI de Azure.

    Inicie sesión en Azure Portal y siga los pasos siguientes.

    El proveedor de servicios configura identidades.

    El proveedor de servicios realiza los pasos siguientes en el inquilino Tenant1 del proveedor de servicios.

    El proveedor de servicios crea un registro de aplicaciones multiinquilino

    Puede crear un nuevo registro de aplicación multiinquilino de Microsoft Entra o comenzar con un registro de aplicación multiinquilino existente. Si comienza con un registro de aplicación existente, anote el id. de aplicación (id. de cliente) de la aplicación.

    Para crear un nuevo registro, siga estos pasos:

    1. Busque Microsoft Entra ID en el cuadro de búsqueda. Busque y seleccione la extensión Microsoft Entra ID.

    2. Seleccione Administrar > Registros de aplicaciones en el panel izquierdo.

    3. Seleccione + Nuevo registro.

    4. Proporcione el nombre del registro de aplicación y seleccione Cuenta en cualquier directorio organizativo (cualquier directorio de Microsoft Entra: multiinquilino).

    5. Seleccione Registrar.

    6. Anote el valor de applicationId/ClientId de la aplicación.

      Screen shot showing how to create a new multi-tenant application registration.

    El proveedor de servicios crea una identidad administrada asignada por el usuario.

    Cree una identidad administrada asignada por el usuario que se usará como credencial de identidad federada.

    1. Busque Identidades administradas en el cuadro de búsqueda. Busque y seleccione la extensión Identidades administradas.

    2. Seleccione + Create (+ Crear).

    3. Proporcione el grupo de recursos, la región y el nombre de la identidad administrada.

    4. Seleccione Revisar + crear.

    5. Si la implementación se realiza correctamente, anote el valor de resourceId de Azure de la identidad administrada asignada por el usuario, que está disponible en Propiedades. Por ejemplo:

      /subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA

      Screen shot showing how to create a resource group and a user-assigned managed identity.

    El proveedor de servicios configura la identidad administrada asignada por el usuario como una credencial federada en la aplicación.

    Configure una identidad administrada asignada por el usuario como credencial de identidad federada en la aplicación para que pueda suplantar la identidad de la aplicación.

    1. Vaya a Microsoft Entra ID > Registros de aplicaciones > su aplicación.

    2. Seleccione Certificados y secretos.

    3. Seleccione Credenciales federadas.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Seleccione + Agregar credencial.

    5. En Escenario de credencial federada, seleccione Claves administradas por el cliente.

    6. Haga clic en Seleccionar una identidad administrada. En el panel, seleccione la suscripción. En Identidad administrada, seleccione Identidad administrada asignada por el usuario. En el cuadro Seleccionar, busque la identidad administrada que creó anteriormente y haga clic en Seleccionar en la parte inferior del panel.

      Screen shot showing how to select a managed identity.

    7. En Detalles de la credencial, proporcione un nombre y una descripción opcional para la credencial y seleccione Agregar.

      Screen shot showing how to add a credential.

    El proveedor de servicios comparte el id. de aplicación con el cliente.

    Busque el identificador (identificador de cliente) de la aplicación multiinquilino y compártalo con el cliente.

    El cliente concede a la aplicación del proveedor de servicios acceso a la clave en el almacén de claves.

    El cliente realiza los pasos siguientes en el inquilino Tenant2 del cliente. El cliente puede usar Azure Portal, Azure PowerShell o la CLI de Azure.

    El usuario que ejecuta los pasos debe ser un administrador con un rol con privilegios, como Administrador de aplicaciones, Administrador de aplicaciones en la nube o Administrador global.

    Inicie sesión en Azure Portal y siga los pasos siguientes.

    El cliente instala la aplicación del proveedor de servicios en el inquilino del cliente

    Para instalar la aplicación registrada del proveedor de servicios en el inquilino del cliente, cree una entidad de servicio con el id. de aplicación de la aplicación registrada. Puede crear la entidad de servicio de cualquiera de las maneras siguientes:

    El cliente crea un almacén de claves

    Para crear el almacén de claves, a la cuenta del usuario se le debe asignar el rol Colaborador de Key Vault u otro rol que permita la creación de un almacén de claves.

    1. En el menú de Azure Portal o en la página principal, seleccione + Crear un recurso. En el cuadro de búsqueda, escriba Almacenes de claves. En la lista de resultados, seleccione Almacenes de claves. En la página Almacenes de claves, seleccione Crear.

    2. En la pestaña Aspectos básicos, elija una suscripción. En Grupo de recursos, seleccione Crear nuevo y escriba un nombre para el grupo de recursos.

    3. Introduzca un nombre único para el almacén de claves.

    4. Seleccione una región y un plan de tarifa.

    5. Habilite la protección de purgas para el nuevo almacén de claves.

    6. En la pestaña Directiva de acceso, seleccione Control de acceso basado en roles de Azure para Modelo de permisos.

    7. Seleccione Revisar y crear y, a continuación, Crear.

      Screen shot showing how to create a key vault.

    Anote el nombre y el identificador URI del almacén de claves. Las aplicaciones que acceden al almacén de claves deben usar este identificador URI.

    Para obtener más información, consulte Inicio rápido: Creación de un almacén de claves de Azure Key Vault con Azure Portal.

    El cliente asigna el rol de Agente criptográfico de Key Vault a una cuenta de usuario.

    Este paso garantiza que pueda crear claves de cifrado.

    1. Vaya al almacén de claves y seleccione Control de acceso (IAM) en el panel izquierdo.
    2. En Conceder acceso a este recurso seleccione Agregar asignación de rol.
    3. Busque y seleccione Agente criptográfico de Key Vault.
    4. En Miembros, seleccione Usuario, grupo o entidad de servicio.
    5. Seleccione Miembros y busque su cuenta de usuario.
    6. Seleccione Revisar y asignar.

    El cliente crea una clave de cifrado

    Para crear la clave de cifrado, a la cuenta del usuario se le debe asignar el rol Agente criptográfico de Key Vault u otro rol que permita la creación de una clave.

    1. En la página de propiedades de Key Vault, seleccione Claves.
    2. Seleccione Generar o importar.
    3. En la pantalla Crear una clave, especifique un nombre para la clave. Deje las restantes opciones con sus valores predeterminados.
    4. Seleccione Crear.
    5. Copie el URI de la clave.

    El cliente concede a la aplicación del proveedor de servicios acceso al almacén de claves.

    Asigne el rol de RBAC de Azure Usuario del cifrado del servicio de cifrado de Key Vault a la aplicación registrada del proveedor de servicios para que pueda acceder al almacén de claves.

    1. Vaya al almacén de claves y seleccione Control de acceso (IAM) en el panel izquierdo.
    2. En Conceder acceso a este recurso seleccione Agregar asignación de rol.
    3. Busque y seleccione Usuario del cifrado del servicio de cifrado de Key Vault.
    4. En Miembros, seleccione Usuario, grupo o entidad de servicio.
    5. Seleccione Miembros y busque el nombre de la aplicación que instaló desde el proveedor de servicios.
    6. Seleccione Revisar y asignar.

    Ahora puede configurar claves administradas por el cliente con el URI y la clave del almacén de claves.

    Configuración de claves administradas por el cliente para una cuenta existente

    Hasta este punto, ha configurado la aplicación multiinquilino en el inquilino del ISV, también ha instalado la aplicación en el inquilino del cliente y configurado tanto el almacén de claves como la clave en el inquilino del cliente. A continuación, puede configurar las claves administradas por el cliente en una cuenta de almacenamiento existente con la clave del inquilino del cliente.

    En los ejemplos de este artículo se muestra cómo configurar claves administradas por el cliente en una cuenta de almacenamiento existente mediante una identidad administrada asignada por el usuario para autorizar el acceso al almacén de claves. También puede usar una identidad administrada asignada por el sistema para configurar claves administradas por el cliente en una cuenta de almacenamiento existente. En cualquier caso, la identidad administrada debe tener los permisos adecuados para acceder al almacén de claves. Para obtener más información, consulte Autenticar en Azure Key Vault.

    Al configurar el cifrado con claves administradas por el cliente para una cuenta de almacenamiento existente, puede optar por actualizar automáticamente la versión de la clave que se usa para el cifrado de Azure Storage siempre que haya disponible una versión nueva en el almacén de claves asociado. Para ello, omita la versión de la clave del identificador URI de la clave. Como alternativa, puede especificar explícitamente la versión de la clave que se usará para el cifrado hasta que la versión de la clave se actualice manualmente. La inclusión de la versión de la clave en el URI de la clave configura las claves administradas por el cliente para la actualización manual de la versión de la clave.

    Importante

    Para rotar una clave, cree una nueva versión de la misma en Azure Key Vault. Azure Storage no controla la rotación de claves, por lo que deberá administrar la rotación de la clave en el almacén de claves. Puede configurar la rotación automática de claves en Azure Key Vault o rotar la clave de forma manual.

    Azure Storage comprueba solo una vez al día el almacén de claves para obtener una nueva versión de la clave. Al girar una clave en Azure Key Vault, asegúrese de esperar 24 horas antes de deshabilitar la versión anterior.

    Para configurar las claves administradas por el cliente entre inquilinos para una cuenta de almacenamiento existente en Azure Portal, siga estos pasos:

    1. Vaya a la cuenta de almacenamiento.

    2. En Seguridad y redes, seleccione Cifrado. De manera predeterminada, la administración de claves está establecida en Claves administradas de Microsoft, como se muestra en la siguiente imagen.

      Screenshot showing encryption options in Azure portal.

    3. Seleccione la opción Claves administradas de cliente.

    4. Elija la opción Select from Key Vault (Seleccionar desde almacén de claves).

    5. Seleccione Escriba el identificador URI de la clave y especifique el URI de la clave. Omita la versión de la clave del URI si quiere que Azure Storage compruebe automáticamente una nueva versión de la clave y la actualice.

    6. Seleccione la suscripción que contiene el almacén de claves y la clave.

    7. En el campo Tipo de identidad, seleccione Asignación del usuario y, a continuación, especifique la identidad administrada con la credencial de identidad federada que creó anteriormente.

    8. Expanda la sección Opciones avanzadas y seleccione la aplicación registrada multiinquilino que creó anteriormente en el inquilino del ISV.

      Screenshot showing how to configure cross-tenant customer-managed keys for an existing storage account in Azure portal.

    9. Guarde los cambios.

    Después de especificar la clave del almacén de claves en el inquilino del cliente, Azure Portal indica que las claves administradas por el cliente están configuradas con esa clave. También indica que está habilitada la actualización automática de la versión de la clave y muestra la versión de la clave actualmente en uso para el cifrado. El portal también muestra el tipo de identidad administrada que se usa para autorizar el acceso al almacén de claves, el id. de entidad de seguridad de la identidad administrada y el id. de aplicación de la aplicación multiinquilino.

    Screenshot showing cross-tenant customer-managed key configuration.

    Cambio de la clave

    Puede cambiar la clave que usa para el cifrado de Azure Storage en cualquier momento.

    Nota:

    Al cambiar la clave o la versión de la clave, la protección de la clave de cifrado raíz cambiará, pero los datos de la cuenta de Azure Storage seguirán cifrados en todo momento. No se requiere ninguna acción adicional por su parte para asegurarse de que los datos están protegidos. Cambiar la clave o rotar la versión de la clave no afectará al rendimiento. No hay tiempo de inactividad asociado al cambio de clave o a la rotación de la versión de la clave.

    Para cambiar la clave con Azure Portal, haga lo siguiente:

    1. Vaya a la cuenta de almacenamiento y muestre las opciones de configuración de cifrado.
    2. Seleccione el almacén de claves y elija una clave nueva.
    3. Guarde los cambios.

    Revocar el acceso a una cuenta de almacenamiento que usa claves administradas por el cliente

    Para revocar temporalmente el acceso a una cuenta de almacenamiento que usa claves administradas por el cliente, deshabilite la clave que se usa actualmente en el almacén de claves. No hay ningún impacto en el rendimiento ni en el tiempo de inactividad asociados con deshabilitar y volver a habilitar la clave.

    Después de deshabilitar la clave, los clientes no pueden llamar a las operaciones que leen o escriben en un blob o en sus metadatos. Para obtener información sobre qué operaciones producirán errores, consulte Revocación del acceso a una cuenta de almacenamiento que usa claves administradas por el cliente.

    Precaución

    Al deshabilitar la clave en el almacén de claves, los datos de la cuenta de Azure Storage permanecerán cifrados, pero se volverán inaccesibles hasta que se pueda volver a habilitar la clave.

    Para deshabilitar una clave administrada por el cliente con Azure Portal, siga estos pasos:

    1. Vaya al almacén de claves que contiene la clave.

    2. En Objetos, seleccione Claves.

    3. Haga clic con el botón derecho en la clave y seleccione Deshabilitar.

      Screenshot showing how to disable a customer-managed key in the key vault.

    Volver a las claves administradas por Microsoft

    Puede cambiar de claves administradas por el cliente a claves administradas por Microsoft en cualquier momento, mediante Azure Portal, PowerShell o la CLI de Azure.

    Para cambiar de claves administradas por el cliente a claves administradas por Microsoft en Azure Portal, siga estos pasos:

    1. Vaya a la cuenta de almacenamiento.

    2. En Seguridad y redes, selecciona Cifrado.

    3. Cambie el Tipo de cifrado a Claves administradas por Microsoft.

      Screenshot showing how to switch to Microsoft-managed keys for a storage account.

    Consulte también