Cómo funciona S3 Object Lock - Amazon Simple Storage Service

Cómo funciona S3 Object Lock

Puede usar Bloqueo de objetos de S3 para almacenar objetos mediante un modelo de escritura única y lectura múltiple (WORM). S3 Object Lock puede ayudar a evitar que se eliminen o se sobrescriban objetos durante un periodo de tiempo determinado o de manera indefinida. Puede usar Bloqueo de objetos de S3 para cumplir con los requisitos normativos que precisen de almacenamiento WORM o agregar una capa adicional de protección frente a cambios y eliminaciones de objetos.

Para obtener información acerca de la administración del estado de bloqueo de sus objetos de Amazon S3, consulte Administración de S3 Object Lock .

nota

Los buckets de S3 con S3 Object Lock no se pueden utilizar como buckets de destino para los registros de acceso al servidor. Para obtener más información, consulte Registro de solicitudes mediante el registro de acceso al servidor.

En las siguientes secciones se describen las características principales de Bloqueo de objetos de S3.

Modos de retención

Bloqueo de objetos de S3 proporciona dos modos de retención:

  • Modo Gobierno

  • Modo Cumplimiento

Estos modos de retención aplican diferentes niveles de protección a los objetos. Puede aplicar cualquier modo de retención a cualquier versión del objeto protegida por Bloqueo de objetos.

En el modo Gobierno, los usuarios no pueden sobrescribir ni eliminar una versión del objeto ni alterar su configuración de bloqueo a menos que tengan permisos especiales. Con el modo Gobierno, evita que la mayoría de los usuarios eliminen un objeto, pero puede seguir otorgando permiso a algunos usuarios para alterar la configuración de retención o eliminar el objeto si es necesario. También puede usar el modo Gobierno para probar la configuración del periodo de retención antes de crear un periodo de retención en el modo Cumplimiento.

Para anular o eliminar la configuración de retención del modo Gobierno, el usuario debe tener el permiso s3:BypassGovernanceRetention que debe incluir explícitamente x-amz-bypass-governance-retention:true como encabezado de la solicitud con cualquier solicitud que requiera la anulación del modo Gobierno.

nota

La consola de Amazon S3, de forma predeterminada, incluye el encabezado x-amz-bypass-governance-retention:true. Si intenta eliminar objetos protegidos por el modo gobierno y cuenta con permisos s3:BypassGovernanceRetention, la operación se realizará correctamente.

En el modo Conformidad, ningún usuario puede sobrescribir ni eliminar una versión de objeto protegida, incluido el usuario raíz de la Cuenta de AWS. Una vez que se ha bloqueado un objeto en el modo Cumplimiento, no es posible cambiar su modo de retención ni acortar su periodo de retención. El modo de conformidad evita que se pueda sobrescribir o eliminar una versión del objeto durante toda la duración del periodo de retención.

nota

La actualización de los metadatos de la versión del objeto, como ocurre cuando coloca o altera el bloqueo de un objeto, no sobrescribe las versiones del objeto ni restablece su marca temporal Last-Modified.

Periodos de retención

Un periodo de retención protege una versión de un objeto por un periodo de tiempo determinado. Cuando coloca un periodo de retención en una versión del objeto, Amazon S3 almacena una marca temporal en los metadatos de la versión del objeto para indicar el vencimiento del periodo de retención. Cuando vence el periodo de retención, es posible sobrescribir o eliminar la versión del objeto a menos que también haya colocado una retención legal en la versión del objeto.

Puede colocar un periodo de retención en una versión del objeto bien explícitamente o bien a través de una configuración predeterminada del bucket. Cuando se aplica un periodo de retención a una versión de objeto explícitamente, se especifica una Fecha de finalización de la retención de la versión de objeto. Amazon S3 almacena la Retain Until Date configuración de los metadatos de la versión del objeto y protege la versión del objeto hasta que vence el periodo de retención.

Si usa la configuración predeterminada del bucket, no especificará una Retain Until Date. En cambio, especifica una duración, en días o años, durante la cual deberá protegerse cada versión del objeto colocada en el bucket. Cuando coloca un objeto en un bucket, Amazon S3 calcula una Retain Until Date del objeto al agregar la duración especificada a la marca temporal de creación de la versión del objeto. Almacena Retain Until Date en los metadatos de la versión del objeto. La versión del objeto queda protegida exactamente como si hubiese colocado en esta un bloqueo explícito con ese periodo de retención.

nota

Si solicita colocar una versión del objeto en un bucket que contiene un modo y periodo de retención explícitos, esa configuración anula la configuración predeterminada del bucket para esa versión del objeto.

Como todos los demás ajustes de Bloqueo de objetos, los periodos de retención solo se aplican a versiones del objeto individuales. Diferentes versiones del mismo objeto pueden tener distintos modos y periodos de retención.

Por ejemplo, supongamos que tiene un objeto para el que han transcurrido 15 días de un periodo de retención de 30 días y aplica PUT a un objeto en Amazon S3 con el mismo nombre y un periodo de retención de 60 días. En este caso, PUT se considerará correcto y Amazon S3 creará una nueva versión del objeto con un periodo de retención de 60 días. La versión antigua mantiene su periodo de retención original y podrá borrarse en 15 días.

Puede ampliar el periodo de retención una vez que ha aplicado una configuración de retención a una versión de un objeto. Para ello, envíe una nueva solicitud de bloqueo para la versión del objeto con una Retain Until Date que es posterior a la configurada actualmente para esa versión del objeto. Amazon S3 reemplaza el periodo de retención actual con el periodo nuevo, más largo. Cualquier usuario con permiso para colocar un periodo de retención en un objeto puede ampliar dicho periodo de retención para una versión del objeto bloqueada en cualquier modo.

Con S3 Object Lock también puede colocar una retención legal en una versión de objeto. Al igual que un periodo de retención, la retención legal impide que se sobrescriba o elimine una versión de un objeto. Sin embargo, una retención legal no tiene asociado un periodo de retención y sigue vigente hasta que se elimine. Los usuarios con el permiso s3:PutObjectLegalHold pueden colocar y eliminar libremente retenciones legales. Para obtener una lista completa de permisos de Amazon S3, consulte Acciones, recursos y claves de condición de Amazon S3.

Las retenciones legales son independientes de los periodos de retención. Siempre que el bucket que contiene el objeto tenga Bloqueo de objetos activado, puede colocar y eliminar retenciones legales sin importar si la versión del objeto especificada tiene establecido un periodo de retención. La colocación de una retención legal en una versión de un objeto no afecta al modo ni al periodo de retención de dicha versión del objeto.

Por ejemplo, supongamos que coloca una retención legal en una versión de un objeto al mismo tiempo que esta también recibe protección de un periodo de retención. Si vence el periodo de retención, el objeto no perderá su protección WORM. En cambio, la retención legal continúa protegiendo el objeto hasta que un usuario autorizado la elimine explícitamente. De igual modo, si elimina una retención legal en una versión del objeto que tiene un periodo de retención vigente, la versión del objeto seguirá protegida hasta que venza el periodo de retención.

Para usar Bloqueo de objetos, debe habilitarlo para un bucket. De manera opcional, puede configurar un modo y un periodo de retención predeterminados para los nuevos objetos colocados en el bucket. Para obtener más información, consulte Configurar S3 Object Lock utilizando la consola.

Configuración del bucket

Para usar Bloqueo de objetos, debe habilitarlo para un bucket. De manera opcional, puede configurar un modo y un periodo de retención predeterminados para los nuevos objetos colocados en el bucket.

nota

Cuando utilice Bloqueo de objetos de S3, asegúrese de tener en cuenta su técnica de cifrado. Por ejemplo, si está utilizando el cifrado en el servidor con claves AWS KMS, considere cómo la posible eliminación de la clave podría interactuar con Bloqueo de objetos de S3. Tal vez sea importante considerar también la protección de la clave.

Habilitación de Bloqueo de objetos de S3

Para poder bloquear un objeto, debe configurar el bucket para que use Bloqueo de objetos de S3. Para hacerlo, cuando crea el bucket debe especificar que desea habilitar Bloqueo de objetos. Tras configurar el bucket para Bloqueo de objetos, puede bloquear objetos en ese bucket con periodos de retención, retenciones legales o ambas opciones.

nota
  • Solo puede habilitar Bloqueo de objetos en buckets nuevos. Si desea activar el bloqueo de objetos para un bucket existente, contacte con AWS Support.

  • Cuando crea un bucket con Bloqueo de objetos activado, Amazon S3 habilita automáticamente el control de versiones para ese bucket.

  • Si se crea un bucket con S3 Object Lock activado, no se puede deshabilitar S3 Object Lock ni suspender el control de versiones de ese bucket.

Para obtener información acerca de cómo habilitar Bloqueo de objetos en la consola, consulte Configurar S3 Object Lock utilizando la consola.

Configuración de retención predeterminada

Al activar Bloqueo de objetos para un bucket, este puede almacenar objetos protegidos. Sin embargo, la configuración no protege automáticamente los objetos que incluye en el bucket. Si desea proteger automáticamente las versiones del objeto colocadas en el bucket, puede configurar un periodo de retención predeterminado. La configuración predeterminada se aplica a todos los objetos nuevos colocados en el bucket a menos que especifique de forma explícita un modo y periodo de retención diferentes para el objeto cuando lo crea.

sugerencia

Si desea aplicar el modo y el periodo de retención predeterminados del bucket para todas las nuevas versiones de objetos ubicadas en un bucket, defina los valores predeterminados del bucket y deniegue a los usuarios el permiso para configurar los valores de retención de objetos. A continuación, Amazon S3 aplica el modo y el periodo de retención predeterminados a las nuevas versiones de objetos ubicadas en el bucket y rechaza cualquier solicitud de ubicación de un objeto que incluya un modo y una configuración de retención.

La configuración predeterminada del bucket requiere tanto un modo como un periodo. El modo predeterminado del bucket es Gobierno o Cumplimiento. Para obtener más información, consulte Modos de retención.

Un periodo de retención predeterminado no es una marca temporal sino un periodo de días o años. Al colocar una versión de un objeto en un bucket con un periodo de retención determinado, Bloqueo de objetos calcula una fecha de eliminación de la retención. Para ello, suma el periodo de retención predeterminado a la marca de tiempo de creación de la versión del objeto. Amazon S3 almacena la marca temporal resultante como la versión del objeto Retain Until Date, como si hubiera calculado de forma manual la marca temporal y la hubiera colocado en la versión del objeto usted mismo.

La configuración predeterminada se aplica solo a los objetos nuevos colocados en el bucket. La colocación de una configuración de retención predeterminada en un bucket no coloca ninguna configuración de retención en los objetos que ya están en este.

importante

Los bloqueos de objeto se aplican solo a las versiones individuales del objeto. Si coloca un objeto en un bucket que tiene un periodo de retención predeterminado y no especifica explícitamente un periodo de retención para ese objeto, Amazon S3 crea el objeto con un periodo de retención que coincida con lo predeterminado en el bucket. Después de crear un objeto, el periodo de retención es independiente del periodo de retención predeterminado del bucket. El cambio del periodo de retención predeterminado del bucket no altera el periodo de retención existente de los objetos en ese bucket.

nota

Si configura un periodo de retención predeterminado en el bucket, las solicitudes para cargar objetos en dicho bucket deben incluir el encabezado Content-MD5. Para obtener más información, consulte el tema sobre Put Object en la referencia de la API de Amazon Simple Storage Service.

Permisos necesarios

Las operaciones de Bloqueo de objetos necesitan permisos específicos. En función de la operación exacta que esté intentando, es posible que necesite alguno de los siguientes permisos:

  • s3:BypassGovernanceRetention

  • s3:GetBucketObjectLockConfiguration

  • s3:GetObjectLegalHold

  • s3:GetObjectRetention

  • s3:PutBucketObjectLockConfiguration

  • s3:PutObjectLegalHold

  • s3:PutObjectRetention

Para obtener información sobre el uso de condiciones con permisos, consulte Ejemplos de claves de condición de Amazon S3.