En esta página, se analiza la función de bloqueo de buckets, que te permite configurar la política de retención de un bucket de Cloud Storage. Esta política rige durante cuánto tiempo se deben conservar los objetos en el bucket. Esta función también te permite bloquear la política de retención del bucket para evitar de forma permanente que se reduzca o se quite.
Esta función puede proporcionar almacenamiento inmutable en Cloud Storage. En conjunto con el modo de registro de auditoría detallado, que registra los detalles de las solicitudes y respuestas de Cloud Storage, el bloqueo de depósitos puede ayudar a cumplir los requisitos regulatorios y de cumplimiento, como los asociados con la FINRA, la SEC y la CFTC. El bloqueo de buckets también te puede ayudar a abordar ciertas normas de retención de la industria del cuidado de la salud.
Descripción general
Puedes agregar una política de retención a un depósito para especificar un período de retención.
Cuando se establece una política de retención de bucket , los objetos del bucket solo se pueden borrar o reemplazar una vez que su antigüedad sea mayor que el período de retención.
Una política de retención se aplica de forma retroactiva a los objetos existentes en el bucket y también a los objetos nuevos que se agreguen después. Esto difiere de la función Bloqueo de retención de objetos, que te permite definir requisitos de retención de datos por objeto.
Puedes bloquear la política de retención de un depósito para establecerla de forma permanente.
Una vez que bloquees una política de retención, no puedes quitarla ni reducir su período de retención.
No puedes borrar un bucket con una política de retención bloqueada, a menos que cada objeto del bucket cumpla el período de retención.
Puedes aumentar el período de retención de una política de retención bloqueada.
Políticas de retención de depósitos
Puedes incluir una política de retención cuando creas un depósito nuevo o puedes agregar una política de retención a un depósito existente. Agregar una política de retención a un bucket garantiza que todos sus objetos actuales y futuros no se puedan borrar ni reemplazar hasta que alcancen la antigüedad definida. Los intentos de borrar o reemplazar los objetos cuya antigüedad sea menor al período de retención fallarán con un error 403 - retentionPolicyNotMet
.
Por ejemplo, supongamos que tienes un bucket con dos objetos: el Objeto A, que se agregó hace un mes y el Objeto B, que se agregó hace dos años. Si aplicas una política de retención a tu bucket con un período de retención de 1 año, no puedes borrar o reemplazar el Objeto A durante otros 11 meses: en la actualidad tiene 1 mes, pero debe tener al menos 1 año para borrarlo o reemplazarlo. El Objeto B, por otro lado, se puede borrar o reemplazar de inmediato, ya que su antigüedad es mayor que el período de retención. Si decides reemplazar el Objeto B, esta nueva versión tendrá una antigüedad de 0 años.
Para facilitar el seguimiento de cuándo se pueden borrar los objetos individuales, los objetos de un depósito con una política de retención tienen metadatos de vencimiento de retención. Estos metadatos muestran la fecha y hora en que un objeto cumple el período de retención.
Consideraciones generales
Cuando trabajes con políticas de retención, ten en cuenta lo siguiente:
A menos que la política de retención de un bucket esté bloqueada, puedes aumentarla, disminuirla o quitarla.
Los metadatos editables de un objeto no están sujetos a la política de retención de un depósito y se pueden modificar incluso cuando el objeto en sí no pueda modificarse.
La política de retención de un depósito contiene un tiempo efectivo, luego del cual se garantiza que todos los objetos del depósito cumplen con el período de retención.
Para ver la fecha más temprana en la que un objeto determinado puede borrarse en un depósito con una política de retención, consulta la parte correspondiente a la fecha de vencimiento de la retención de los metadatos del objeto.
Consideraciones con otras funciones
Las siguientes son interacciones que tienen las políticas de retención con otras funciones de Cloud Storage:
En los buckets que usan el control de versiones de objetos, una versión de objeto publicada que tenga una fecha de vencimiento de retención en el futuro aún puede convertirse en no actual, y todos los objetos con control de versiones que existan en el bucket en el momento en que apliques una política de retención también estarán protegidos por ella.
Un objeto que está sujeto a una conservación basada en eventos no se puede borrar mientras se aplica la conservación. Una vez que se quita del objeto la conservación basada en eventos, se restablece el período de retención del objeto.
Un objeto individual puede estar sujeto a la política de retención del depósito y a su propia configuración de retención individual. Si un objeto está sujeto a ambos, se conserva hasta que se cumplan ambas retenciones.
No puedes destruir las versiones de claves de Cloud Key Management Service que encriptan objetos en buckets bloqueados si los objetos no cumplieron con sus plazos de vencimiento de retención. Si deseas obtener más información, consulta Versiones de claves que se usan para encriptar objetos bloqueados.
Puedes usar la Administración del ciclo de vida de los objetos para borrar de forma automática los objetos de un depósito, incluso en uno que tenga una política bloqueada. Una regla de ciclo de vida no borrará un objeto hasta que cumpla la política de retención.
No debes hacer cargas compuestas paralelas si tu depósito tiene una política de retención, ya que las partes de los componentes no se pueden borrar hasta que cada una haya cumplido con el período de retención mínimo del depósito.
Intentar completar una carga multiparte de la API de XML falla si el objeto resultante reemplazará un objeto que aún no alcanzó su período de retención.
Puedes usar la restricción de la política de retención en las políticas de la organización para exigir que las políticas de retención con períodos de retención específicos se incluyan como parte de la creación de un depósito nuevo o como parte de la adición o actualización de una política de retención en un depósito existente.
Períodos de retención
Los períodos de retención se miden en segundos. Sin embargo, algunas herramientas, como la consola de Google Cloud y la CLI de Google Cloud, te permiten configurar y ver los períodos de retención con otras unidades de tiempo para mayor comodidad. En esos casos, se aplican las siguientes conversiones:
- Un día son 86,400 segundos.
- Un mes son 31 días o 2,678,400 segundos.
- Un año son 365.25 días o 31,557,600 segundos.
Puedes establecer un período de retención máximo de 3,155,760,000 segundos (100 años).
En la CLI de gsutil, cuando especificas un período de retención, debes especificar un número entero y una unidad, en los que la unidad puede ser s
, d
, m
o y
para indicar los segundos, días, meses o años, respectivamente. Por ejemplo, 1d43200s
establece un período de retención de 1 día y 43,200 segundos (uno y medio día).
Bloqueos de políticas de retención
Cuando bloqueas la política de retención de un depósito, evitas que la política se pueda quitar o que el período de retención se reduzca (aunque este período se puede aumentar). Si intentas quitar o reducir la duración de la política de un depósito bloqueado, recibirás un error 400 BadRequestException
. Una vez que se bloquea una política de retención, no puedes borrar el bucket hasta que todos sus objetos cumplan con el período de retención.
El bloqueo de la política de retención de un depósito es irreversible y debes estar familiarizado con sus implicaciones antes de usar esta función. Cuando usas una política de retención desbloqueada, tienes la capacidad de quitarla, lo que te permite borrar los objetos cuando lo desees. Cuando bloqueas una política de retención, debes borrar todo el bucket para “quitar” la política. Sin embargo, no puedes borrar el bucket si contiene objetos que no cumplieron su período de retención. Por lo tanto, para “quitar” una política de retención bloqueada, debes esperar hasta que todos los objetos del bucket cumplan su período de retención, tras lo cual podrás borrar el bucket.
Además, cuando bloqueas una política de retención, Cloud Storage aplica de forma automática una retención al permiso projects.delete
del proyecto que contiene el depósito. Mientras esté en vigor, esta retención impide que el proyecto se borre. Para borrar el proyecto, primero debes quitar estas retenciones.
Ten en cuenta que para quitar una retención, necesitas el permiso resourcemanager.projects.updateLiens
, que forma parte de las funciones roles/owner
y roles/resourcemanager.lienModifier
.
Para obtener información sobre cómo el bloqueo de una política de retención puede ayudar a que tus datos cumplan con las normas de retención de registros, consulta la página de cumplimiento.
¿Qué sigue?
- Obtén más información sobre cómo usar y bloquear políticas de retención.
- Obtén más información sobre el bloqueo de retención de objetos y las conservaciones de objetos, que proporcionan formas para proteger los objetos individuales contra la eliminación.
- Obtén información sobre el modo de registro de auditoría detallado, que también puede ayudarte con los requisitos regulatorios y de cumplimiento.