Configuración de directivas de inmutabilidad para versiones de blobs
El almacenamiento inmutable para Azure Blob Storage permite a los usuarios almacenar los datos críticos para la empresa en un estado WORM (escribir una vez, leer muchas). Mientras se encuentren en un estado WORM, los datos no se podrán modificar ni eliminar durante el tiempo especificado por el usuario. Con la configuración de directivas de inmutabilidad para los datos de blobs, puede impedir que sus datos se sobrescriban y eliminen. Las directivas de inmutabilidad incluyen directivas de retención de duración definida y suspensiones legales. Para más información sobre las directivas de inmutabilidad de Blob Storage, consulte Almacenamiento de datos críticos para la empresa con almacenamiento inmutable.
Una directiva de inmutabilidad puede estar limitada a una determinada versión de blob o un contenedor. En este artículo se describe cómo configurar una directiva de inmutabilidad en el nivel de versión. Para aprender a configurar directivas de inmutabilidad en el nivel de contenedor, consulte Configuración de directivas de inmutabilidad para contenedores.
Nota
Las directivas de inmutabilidad no se admiten en las cuentas que tienen habilitado el protocolo Network File System (NFS) 3.0 o el protocolo de transferencia de archivos SSH (SFTP).
La configuración de una directiva de inmutabilidad en el nivel de versión es un proceso de dos pasos:
- En primer lugar, habilite la compatibilidad con la inmutabilidad en el nivel de versión en una nueva cuenta de almacenamiento o en un contenedor nuevo o existente. Consulte Enable support for version-level immutability (Habilitación de la compatibilidad con la inmutabilidad en el nivel de versión).
- A continuación, configure una directiva de retención con duración definida o una suspensión legal que se aplique a una o varias versiones de blob de ese contenedor.
Requisitos previos
Para configurar directivas de retención con duración definida en el nivel de versión, el control de versiones de blob debe estar habilitado para la cuenta de almacenamiento. Tenga en cuenta que habilitar el control de versiones blob puede afectar a la facturación. Para obtener información sobre cómo habilitar el control de versiones de blobs, consulte Habilitación y administración del control de versiones de blobs.
Para obtener información sobre las configuraciones de cuentas de almacenamiento admitidas para las directivas de inmutabilidad de nivel de versión, consulte Directivas WORM de nivel de versión para datos de blobs inmutables.
Habilitación de la compatibilidad con la inmutabilidad en el nivel de versión
Para poder aplicar una directiva de retención con duración definida a una versión de blob, debe habilitar la compatibilidad con la inmutabilidad en el nivel de versión. Puede habilitar la compatibilidad con la inmutabilidad en el nivel de versión en una nueva cuenta de almacenamiento o en un contenedor nuevo o existente.
Habilitación de la compatibilidad con la inmutabilidad a nivel de versión en una cuenta de almacenamiento
Puede habilitar la compatibilidad con la inmutabilidad a nivel de versión solo cuando cree una nueva cuenta de almacenamiento.
Para habilitar la compatibilidad con la inmutabilidad a nivel de versión al crear una cuenta de almacenamiento en Azure Portal, siga estos pasos:
Vaya a la página Cuentas de almacenamiento en Azure Portal.
Seleccione el botón Crear para crear una cuenta nueva.
Rellene la pestaña Datos básicos.
En la pestaña Protección de datos, en Control de acceso, seleccione Enable version-level immutability support (Habilitar compatibilidad de inmutabilidad a nivel de versión). Al activar esta casilla, también se activa automáticamente la casilla Enable versioning for blobs (Habilitar el control de versiones para blobs).
Seleccione Revisar y crear para validar los parámetros de la cuenta y crear la cuenta de almacenamiento.
Después de crear la cuenta de almacenamiento, puede configurar una directiva de nivel de versión predeterminada para la cuenta. Para más información, consulte Configuración de una directiva predeterminada de retención con duración definida.
Si la compatibilidad con la inmutabilidad de nivel de versión está habilitada para la cuenta de almacenamiento y la cuenta contiene uno o varios contenedores, debe eliminar todos los contenedores antes de eliminar la cuenta de almacenamiento, incluso si no hay directivas de inmutabilidad vigentes para la cuenta o los contenedores.
Nota
La inmutabilidad en el nivel de versión no se puede deshabilitar una vez habilitada en la cuenta de almacenamiento, aunque sí se pueden eliminar las directivas bloqueadas.
Habilitación de la compatibilidad con la inmutabilidad a nivel de versión en un contenedor
Tanto los contenedores nuevos como los existentes se pueden configurar para admitir la inmutabilidad en el nivel de versión. Sin embargo, el contenedor existente debe someterse a un proceso de migración para habilitar la compatibilidad.
Tenga en cuenta que la habilitación de la compatibilidad con la inmutabilidad en el nivel de versión para un contenedor no convierte los datos de ese contenedor en inmutables. También debe configurar una directiva de inmutabilidad predeterminada para el contenedor o una directiva de inmutabilidad para una versión de blob específica. Si habilitó la inmutabilidad a nivel de versión para la cuenta de almacenamiento cuando se creó, también puede configurar una directiva de inmutabilidad predeterminada para la cuenta.
Habilitación de la inmutabilidad en el nivel de versión para un nuevo contenedor
Para usar una directiva de inmutabilidad en el nivel de versión, primero debe habilitar explícitamente la compatibilidad con WORM en el nivel de versión en el contenedor. Puede hacerlo al crear el contenedor o al agregar una directiva de inmutabilidad en el nivel de versión a un contenedor existente.
Para crear un contenedor que admita la inmutabilidad en el nivel de versión en Azure Portal, siga estos pasos:
En Azure Portal, vaya a la página Contenedores de la cuenta de almacenamiento y seleccione Agregar.
En el cuadro de diálogo Nuevo contenedor, proporcione un nombre para el contenedor y expanda la sección Avanzado.
Seleccione Enable version-level immutability support (Habilitar compatibilidad con la inmutabilidad en el nivel de versión) para habilitar esta funcionalidad para el contenedor.
Si la compatibilidad con la inmutabilidad de nivel de versión está habilitada para un contenedor y el contenedor contiene uno o varios blobs, debe eliminar todos los blobs del contenedor antes de poder eliminar el contenedor, incluso si no hay directivas de inmutabilidad en vigor para el contenedor o sus blobs.
Migración de un contenedor existente para admitir la inmutabilidad en el nivel de versión
Para configurar directivas de inmutabilidad en el nivel de versión para un contenedor existente, debe migrar el contenedor para que admita el almacenamiento inmutable en el nivel de versión. La migración del contenedor puede tardar algún tiempo y no se puede revertir. Puede migrar diez contenedores a la vez por cuenta de almacenamiento.
Para migrar un contenedor existente a fin de admitir directivas de inmutabilidad de nivel de versión, el contenedor debe tener configurada una directiva de retención basada en el tiempo de nivel de contenedor. Se produce un error en la migración a menos que el contenedor tenga una directiva existente. El intervalo de retención de la directiva de nivel de contenedor se mantiene como intervalo de retención para la directiva de nivel de versión predeterminada en el contenedor.
Si el contenedor ya tiene una suspensión legal en el nivel de contenedor, no se podrá migrar hasta que esta se haya retirado.
Para migrar un contenedor para que admita directivas de inmutabilidad en el nivel de versión en Azure Portal, siga estos pasos:
Desplácese hasta el contenedor deseado.
En el menú contextual del contenedor, seleccione Directiva de acceso.
En Almacenamiento de blobs inmutable, seleccione Agregar directiva.
En el campo Tipo de directiva, elija Retención con duración definida y especifique el período de retención.
Seleccione Enable version-level immutability (Habilitar inmutabilidad en el nivel de versión).
Seleccione Aceptar para crear una directiva de nivel de contenedor con el intervalo de retención especificado y, después, comience la migración para admitir la inmutabilidad de nivel de versión.
Mientras la operación de migración está en curso, el ámbito de la directiva en el contenedor se muestra como Contenedor. No se permiten las operaciones relacionadas con la administración de directivas de inmutabilidad de nivel de versión con la migración del contenedor en curso. Otras operaciones en los datos de blobs continuarán normalmente durante la migración.
Una vez que se completa la migración, el ámbito de la directiva en el contenedor se muestra como Versión. La directiva que se muestra es una directiva predeterminada en el contenedor que se aplica de forma automática a todas las versiones de blob creadas posteriormente en el contenedor. La directiva predeterminada se puede invalidar en cualquier versión si se especifica una directiva personalizada para esa versión.
Configuración de una directiva predeterminada de retención con duración definida
Después de habilitar la compatibilidad con la inmutabilidad a nivel de versión para una cuenta de almacenamiento o para un contenedor individual, puede especificar una directiva de retención basada en tiempo de nivel de versión predeterminada para la cuenta o contenedor. Al especificar una directiva predeterminada para una cuenta o contenedor, se aplica de forma predeterminada a todas las nuevas versiones de blob que se crean en la cuenta o contenedor. Puede invalidar la directiva predeterminada para cualquier versión de blob individual de la cuenta o contenedor.
La directiva predeterminada no se aplica automáticamente a las versiones de blob que existían antes de configurar la directiva predeterminada.
Si ha migrado un contenedor existente para admitir la inmutabilidad de nivel de versión, la directiva de nivel de contenedor que estaba en vigor antes de la migración se migra a una directiva de nivel de versión predeterminada para el contenedor.
Para configurar una directiva de inmutabilidad de nivel de versión predeterminada para una cuenta de almacenamiento o contenedor, use Azure Portal, PowerShell, la CLI de Azure o uno de los SDK de Azure Storage. Asegúrese de que ha habilitado la compatibilidad con la inmutabilidad de nivel de versión para la cuenta de almacenamiento o contenedor, como se describe en Habilitación de la compatibilidad con la inmutabilidad de nivel de versión.
Para configurar una directiva de inmutabilidad predeterminada de nivel de versión para una cuenta de almacenamiento en Azure Portal, siga estos pasos:
En Azure Portal, vaya a la cuenta de almacenamiento.
En Administración de datos, seleccione Protección de datos.
En la página Protección de datos, busque la sección Control de acceso. Si la cuenta de almacenamiento se creó con compatibilidad para la inmutabilidad a nivel de versión, el botón Administrar directiva aparece en la sección Control de acceso.
Seleccione el botón Administrar directiva para mostrar el cuadro de diálogo Manage version-level immutability policy (Administrar directiva de inmutabilidad a nivel de versión).
Agregue una directiva de retención basada en tiempo predeterminada para la cuenta de almacenamiento.
Para configurar una directiva de inmutabilidad predeterminada de nivel de versión para un contenedor en Azure Portal, siga estos pasos:
En Azure Portal, vaya a la página Contenedores y busque el contenedor al que quiere aplicar la directiva.
En el menú contextual del contenedor, elija Directiva de acceso.
En el cuadro de diálogo Directiva de acceso, en la sección Almacenamiento de blobs inmutable, elija Agregar directiva.
Seleccione Time-based retention policy (Directiva de retención con duración definida) y especifique el intervalo de retención.
Elija si desea permitir escrituras de anexión protegidas.
La opción Anexar blobs permite que las cargas de trabajo agreguen nuevos bloques de datos al final de un blob anexo mediante la operación Anexar bloque.
La opción Blobs en bloques y anexos amplía esta compatibilidad agregando la capacidad de escribir nuevos bloques en un blob en bloques. La API de Blob Storage no proporciona una manera de que las aplicaciones lo hagan directamente. Sin embargo, las aplicaciones pueden hacerlo mediante métodos de anexión y vaciado, que están disponibles en la API de Data Lake Storage Gen2. Además, esta propiedad permite a las aplicaciones de Microsoft, como Azure Data Factory, anexar bloques de datos mediante api internas. Si las cargas de trabajo dependen de cualquiera de estas herramientas, puede usar esta propiedad para evitar errores que pueden aparecer cuando esas herramientas intentan anexar datos a blobs.
Para más información sobre estas opciones, consulte Permitir escrituras de blobs anexos protegidos.
Determinación del ámbito de una directiva de retención en un contenedor
Para determinar el ámbito de una directiva de retención con duración definida en Azure Portal, siga estos pasos:
Desplácese hasta el contenedor deseado.
En el menú contextual del contenedor, seleccione Directiva de acceso.
En Almacenamiento de blobs inmutable, busque el campo Ámbito. Si el contenedor está configurado con una directiva predeterminada de retención en el nivel de versión, el ámbito se establece en Versión, como se muestra en la siguiente imagen:
Si el contenedor está configurado con una directiva de retención en el nivel de versión, el ámbito se establece en Contenedor, como se muestra en la siguiente imagen:
Configuración de una directiva de retención con duración definida en una versión existente
Las directivas de retención con duración definida mantienen los datos de blob en un estado WORM durante un intervalo especificado. Para más información sobre las directivas de retención con duración definida, consulte Directivas de retención con duración definida para datos de blobs inmutables.
Tiene tres opciones para configurar una directiva de retención con duración definida para una versión de blob:
- Opción 1: Puede configurar una directiva predeterminada en la cuenta de almacenamiento o contenedor que se aplique a todos los objetos de la cuenta o contenedor. Los objetos de la cuenta o contenedor heredarán la directiva predeterminada a menos que la invalide explícitamente mediante la configuración de una directiva para una versión de blob determinada. Para más información, consulte Configuración de una directiva predeterminada de retención con duración definida.
- Opción 2: Puede configurar una directiva para la versión actual del blob. Esta directiva puede invalidar una predeterminada configurada en la cuenta de almacenamiento o contenedor si existe una directiva predeterminada y está desbloqueada. De forma predeterminada, las versiones anteriores que se crean después de configurar la directiva heredarán la directiva de la versión actual del blob. Para más información, consulte Configuración de una directiva de retención para la versión actual de un blob.
- Opción 3: Puede configurar una directiva para una versión anterior de un blob. Esta directiva puede invalidar una predeterminada configurada para la versión anterior si existe una y está desbloqueada. Para más información, consulte Configuración de una directiva de retención para una versión anterior de un blob.
Para más información sobre el control de versiones de blobs, consulte Control de versiones de blobs.
Al desplazarse hacia un contenedor, en Azure Portal se muestra una lista de blobs. Cada blob mostrado representa la versión actual del blob. Para acceder a una lista de versiones anteriores, abra el menú contextual del blob y elija Ver versiones anteriores.
Configuración de una directiva de retención para la versión actual de un blob
Para configurar una directiva de retención con duración definida para la versión actual de un blob, siga estos pasos:
Vaya al contenedor que contiene el blob de destino.
En el menú contextual del blob, elija Directiva de acceso. Si ya se ha configurado una directiva de retención con duración definida para la versión anterior, aparece en el cuadro de diálogo Directiva de acceso.
En el cuadro de diálogo Directiva de acceso, en la sección Immutable blob versions (Versiones de blob inmutables), elija Agregar directiva.
Seleccione Time-based retention policy (Directiva de retención con duración definida) y especifique el intervalo de retención.
Seleccione Aceptar para aplicar la directiva a la versión actual del blob.
Puede ver las propiedades de un blob para determinar si hay una directiva habilitada para la versión actual. Seleccione el blob y, luego, vaya a la pestaña Información general y busque la propiedad Version-level immutability policy (Directiva de inmutabilidad en el nivel de versión). Si hay una directiva habilitada, la propiedad Período de retención mostrará la fecha y hora de expiración de la directiva. Tenga en cuenta que una directiva puede estar configurada para la versión actual o puede heredarse del contenedor primario del blob si hay una directiva predeterminada vigente.
Configuración de una directiva de retención para una versión anterior de un blob
También puede configurar una directiva de retención con duración definida para una versión anterior de un blob. Una versión anterior siempre es inmutable, ya que no se puede modificar. Sin embargo, se puede eliminar una versión anterior. Una directiva de retención con duración definida protege contra la eliminación mientras está vigente.
Para configurar una directiva de retención con duración definida para una versión anterior de un blob, siga estos pasos:
Vaya al contenedor que contiene el blob de destino.
Seleccione el blob y, luego, vaya a la pestaña Versiones.
Busque la versión de destino y, a continuación, en el menú contextual de la versión, elija Directiva de acceso. Si ya se ha configurado una directiva de retención con duración definida para la versión anterior, aparece en el cuadro de diálogo Directiva de acceso.
En el cuadro de diálogo Directiva de acceso, en la sección Immutable blob versions (Versiones de blob inmutables), elija Agregar directiva.
Seleccione Time-based retention policy (Directiva de retención con duración definida) y especifique el intervalo de retención.
Seleccione Aceptar para aplicar la directiva a la versión actual del blob.
Configuración de una directiva de retención con duración definida al cargar un blob
Al usar Azure Portal para cargar un blob en un contenedor que admite la inmutabilidad en el nivel de versión, tiene varias opciones para configurar una directiva de retención con duración definida para el nuevo blob:
- Opción 1: Si hay una directiva de retención predeterminada configurada para el contenedor, puede cargar el blob con la directiva del contenedor. Esta opción se selecciona de forma predeterminada cuando hay una directiva de retención en el contenedor.
- Opción 2: Si hay una directiva de retención predeterminada configurada para el contenedor, puede optar por invalidarla; para ello, puede definir una directiva de retención personalizada para el nuevo blob o cargar el blob sin directiva.
- Opción 3: Si no hay ninguna directiva predeterminada configurada para el contenedor, puede cargar el blob con una directiva personalizada o sin directiva.
Para configurar una directiva de retención con duración definida al cargar un blob, siga estos pasos:
Vaya al contenedor deseado y seleccione Cargar.
En el cuadro de diálogo Cargar blob, expanda la sección Avanzado.
Configure la directiva de retención con duración definida para el nuevo blob en el campo Directiva de retención. Si hay una directiva predeterminada configurada para el contenedor, se selecciona de forma predeterminada. También puede especificar una directiva personalizada para el blob.
Modificación o eliminación de una directiva de retención desbloqueada
Puede modificar una directiva de retención con duración definida desbloqueada para acortar o alargar el intervalo de retención. Las directivas desbloqueadas también se pueden eliminar. La edición o eliminación de una directiva de retención con duración definida para una versión de blob no afecta a las directivas vigentes para cualquier otra versión. Si hay una directiva de retención con duración definida predeterminada vigente para el contenedor, la versión del blob con la directiva modificada o eliminada ya no se heredará del contenedor.
Para modificar una directiva de retención de duración definida desbloqueada en Azure Portal, siga estos pasos:
Busque el contenedor o la versión de destino. En el menú contextual del contenedor o la versión, elija Directiva de acceso.
Busque la directiva de inmutabilidad desbloqueada existente. En el menú contextual, seleccione Editar en el menú.
Proporcione la nueva fecha y hora de expiración de la directiva.
Para eliminar la directiva desbloqueada, seleccione Eliminar en el menú contextual.
Bloqueo de una directiva de retención de duración definida
Cuando haya terminado de probar una directiva de retención de duración definida, puede bloquearla. Una directiva bloqueada cumple los requisitos de SEC 17a-4(f) y de otras normas. Puede ampliar el intervalo de retención de una directiva bloqueada hasta cinco veces, pero no acortarlo.
Una vez bloqueada una directiva, no se puede eliminar. Sin embargo, puede eliminar el blob una vez expirado el intervalo de retención.
Para bloquear una directiva con Azure Portal, siga estos pasos:
Busque el contenedor o la versión de destino. En el menú contextual del contenedor o la versión, elija Directiva de acceso.
En la sección Versiones de blob inmutables, localice la directiva desbloqueada ya existente. Seleccione Bloquear directiva en el menú contextual.
Confirme que desea bloquear la directiva.
Configuración o borrado de una suspensión legal
Una suspensión legal almacena datos inmutables hasta que se borra explícitamente. Para más información sobre las directivas de suspensión legal, consulte Suspensiones legales para datos de blobs inmutables.
Para configurar una suspensión legal en una versión de blob, primero debe habilitar la compatibilidad con la inmutabilidad a nivel de versión en la cuenta de almacenamiento o en el contenedor. Para más información, consulte la sección Habilitación de la compatibilidad con la inmutabilidad en el nivel de versión.
Siga estos pasos para configurar una suspensión legal en una versión de blob con Azure Portal:
Busque la versión de destino, que puede ser la versión actual o una versión anterior de un blob. En el menú contextual de la versión de destino, elija Directiva de acceso.
En la sección Versiones de blob inmutables, seleccione Agregar directiva.
Elija Suspensión legal como tipo de directiva y seleccione Aceptar para aplicarla.
En la siguiente imagen se muestra una versión actual de un blob que tiene configuradas una directiva de retención con duración definida y una suspensión legal.
Para borrar una suspensión legal, vaya al cuadro de diálogo Directiva de acceso y, en el menú contextual, elija Eliminar.