Bloqueo de objetos mediante Bloqueo de objetos
Bloqueo de objetos de S3 puede ayudar a evitar que se eliminen o se sobreescriban objetos de Amazon S3 durante un periodo de tiempo determinado o de manera indefinida. Bloqueo de objetos utiliza un modelo de escritura única y lectura múltiple (WORM) para almacenar objetos. Bloqueo de objetos se puede utilizar para cumplir con los requisitos normativos que requieren almacenamiento WORM o simplemente para agregar otra capa de protección para evitar cambios o eliminaciones de objetos.
nota
Cohasset Associates ha evaluado el uso de Bloqueo de objetos de S3 en entornos sujetos a las normativas SEC 17a-4, CFTC y FINRA. Para obtener más información acerca de cómo Bloqueo de objetos está relacionado con estas regulaciones, consulte la Evaluación de cumplimiento de Cohasset Associates
Bloqueo de objetos de S3 ofrece dos maneras de administrar la retención de objetos: periodos de retención y retenciones legales. Una versión de un objeto puede tener un periodo de retención, una retención legal, o ambos.
-
Periodo de retención: un periodo de retención especifica un periodo de tiempo fijo durante el cual los objetos permanecen bloqueados. También puede establecer un periodo de retención único para los objetos individuales. Además, puede establecer un periodo de retención predeterminado en un bucket de S3. También puede restringir los períodos de retención mínimos y máximos permitidos con la clave de condición
s3:object-lock-remaining-retention-days
de la política de bucket. Esto lo ayuda a establecer un rango de períodos de retención y a restringir los períodos de retención que pueden ser más cortos o más largos que este rango. -
Retención legal: una retención legal proporciona la misma protección que un periodo de retención, pero no tiene fecha de vencimiento. En cambio, la retención legal sigue vigente hasta que la elimine explícitamente. Las retenciones legales son independientes de los periodos de retención y se aplican a versiones de objetos individuales.
El bloqueo de objetos solo funciona en buckets que tienen activado el control de versiones de S3. Cuando bloquea una versión de un objeto, Amazon S3 almacena la información de bloqueo en los metadatos de esa versión del objeto. Al colocar un periodo de retención o retención legal en un objeto se protege solo la versión que se especifica en la solicitud. Los periodos de retención y las retenciones legales no impiden la creación de nuevas versiones del objeto ni la adición de marcadores de borrado encima del objeto. Para obtener más información sobre el control de versiones de S3, consulte Retención de varias versiones de objetos con Control de versiones de S3.
Si pone un objeto en un bucket que ya contiene un objeto que ya existe y está protegido con el mismo nombre de clave del objeto, Amazon S3 crea una nueva versión de ese objeto. La versión existente y protegida del objeto permanece bloqueada en función de su configuración de retención.
Cómo funciona Bloqueo de objetos de S3
Temas
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.
Puede colocar un periodo de retención de forma explícita en la versión de un objeto individual o en las propiedades de un bucket para que se aplique automáticamente a todos los objetos 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 esta fecha en los metadatos de la versión del objeto.
También puede establecer un periodo de retención en las propiedades de un bucket. Al establecer un periodo de retención en un bucket, especifica una duración, en días o años, para proteger cada versión del objeto colocada en el bucket. Cuando coloca un objeto en un bucket, Amazon S3 calcula una fecha de finalización de la retención de la versión del objeto agregando la duración especificada a la marca temporal de creación de la versión del objeto. La versión del objeto queda protegida exactamente como si hubiese colocado en esta un bloqueo individual con ese periodo de retención.
nota
Cuando se aplica PUT
a la versión de un objeto que tiene un modo y un periodo de retención individual explícitos en un bucket, la configuración de bloqueo de objetos individual de la versión del objeto anula cualquier configuración de retención para las propiedades del bucket.
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, su solicitud PUT
se considerará correcta 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.
Una vez que ha aplicado una configuración de retención a una versión de un objeto, puede ampliar el periodo de retención. Para ello, envíe una nueva solicitud de bloqueo de objetos para la versión del objeto con una Fecha de finalización de la retención 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 permisos para colocar un periodo de retención en un objeto puede ampliar un periodo de retención para una versión del objeto. Para establecer un periodo de retención, debe tener el permiso s3:PutObjectRetention
.
Al establecer un periodo de retención en un objeto o en un bucket de S3, debe seleccionar uno de los dos modos de retención: cumplimiento o gobierno.
Modos de retención
Bloqueo de objetos de S3 brinda dos modos de retención que aplican diferentes niveles de protección a los objetos:
-
Modo Cumplimiento
-
Modo Gobierno
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 única forma de eliminar un objeto en el modo de cumplimiento antes de que venza su fecha de retención es eliminar la Cuenta de AWS asociada.
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 los objetos 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, 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
De forma predeterminada, la consola de Amazon S3 incluye el encabezado x-amz-bypass-governance-retention:true
. Si intenta eliminar objetos protegidos por el modo Gobierno y cuenta con los permisos s3:BypassGovernanceRetention
, la operación se realizará correctamente.
Retenciones legales
Con Bloqueo de objetos de S3 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 una cantidad de tiempo asociada y sigue vigente hasta que se elimine. Los usuarios con el permiso s3:PutObjectLegalHold
pueden colocar y eliminar libremente retenciones legales.
Las retenciones legales son independientes de los periodos 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 y 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.
Prácticas recomendadas para el uso de Bloqueo de objetos de S3
Considere la posibilidad de utilizar el Modo Gobernanza si desea evitar que la mayoría de los usuarios eliminen los objetos durante un período de retención predefinido, pero al mismo tiempo quiere que algunos usuarios con permisos especiales tengan la flexibilidad de modificar la configuración de retención o eliminar los objetos.
Considere la posibilidad de utilizar el Modo Gobernanza si no quiere que ningún usuario, ni siquiera el usuario raíz de su Cuenta de AWS, pueda eliminar los objetos durante un período de retención predefinido. Puede utilizar este modo en caso de que necesite almacenar datos conformes.
Puede utilizar Retención legal si no sabe exactamente cuánto tiempo desea que sus objetos permanezcan inmutables. Esto puede deberse a que se va a realizar una auditoría externa de los datos próximamente y desea mantener los objetos inmutables hasta que finalice la auditoría. O podría tener un proyecto en curso que utiliza un conjunto de datos que desea mantener inmutables hasta que se complete el proyecto.
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 una lista completa de los permisos de S3 con descripciones, consulte Actions, resources, and condition keys for Amazon S3 en la Referencia de autorizaciones de servicio.
Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.
Para obtener información sobre el uso de condiciones con permisos, consulte Ejemplos de políticas de bucket que utilizan claves de condición.