Skip to main content
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Utilice la API REST de S3 para configurar el bloqueo de objetos de S3

Si la configuración global de Bloqueo de objetos S3 está habilitada para su sistema StorageGRID , puede crear depósitos con el Bloqueo de objetos S3 habilitado. Puede especificar la retención predeterminada para cada depósito o configuraciones de retención para cada versión de objeto.

Cómo habilitar el bloqueo de objetos S3 para un bucket

Si la configuración global de Bloqueo de objetos S3 está habilitada para su sistema StorageGRID , puede habilitar opcionalmente el Bloqueo de objetos S3 cuando cree cada depósito.

El bloqueo de objetos S3 es una configuración permanente que solo se puede habilitar cuando se crea un depósito. No es posible agregar ni deshabilitar el bloqueo de objetos S3 después de crear un depósito.

Para habilitar el bloqueo de objetos S3 para un depósito, utilice cualquiera de estos métodos:

  • Cree el depósito mediante el Administrador de inquilinos. Ver "Crear un depósito S3" .

  • Cree el depósito mediante una solicitud CreateBucket con el x-amz-bucket-object-lock-enabled encabezado de solicitud. Ver "Operaciones en buckets" .

El bloqueo de objetos S3 requiere control de versiones del depósito, que se habilita automáticamente cuando se crea el depósito. No se puede suspender el control de versiones del depósito. Ver "Control de versiones de objetos" .

Configuración de retención predeterminada para un depósito

Cuando el bloqueo de objetos S3 está habilitado para un depósito, puede habilitar opcionalmente la retención predeterminada para el depósito y especificar un modo de retención predeterminado y un período de retención predeterminado.

Modo de retención predeterminado

  • En modo CUMPLIMIENTO:

    • El objeto no se puede eliminar hasta que se alcance su fecha de conservación.

    • La fecha de conservación del objeto se puede aumentar, pero no se puede disminuir.

    • La fecha de retención del objeto no se puede eliminar hasta que se alcance esa fecha.

  • En modo GOBERNANZA:

    • Usuarios con la s3:BypassGovernanceRetention El permiso puede utilizar el x-amz-bypass-governance-retention: true encabezado de solicitud para omitir la configuración de retención.

    • Estos usuarios pueden eliminar una versión de un objeto antes de que se alcance su fecha de conservación.

    • Estos usuarios pueden aumentar, disminuir o eliminar la fecha de conservación de un objeto.

Período de retención predeterminado

Cada depósito puede tener un período de retención predeterminado especificado en años o días.

Cómo configurar la retención predeterminada para un depósito

Para establecer la retención predeterminada para un depósito, utilice cualquiera de estos métodos:

Configuración de bloqueo de objeto de colocación

La solicitud PutObjectLockConfiguration le permite establecer y modificar el modo de retención predeterminado y el período de retención predeterminado para un depósito que tiene habilitado el bloqueo de objetos S3. También puede eliminar las configuraciones de retención predeterminadas configuradas previamente.

Cuando se incorporan nuevas versiones de objetos al depósito, se aplica el modo de retención predeterminado si x-amz-object-lock-mode y x-amz-object-lock-retain-until-date no están especificados El período de retención predeterminado se utiliza para calcular la fecha de retención hasta si x-amz-object-lock-retain-until-date No está especificado.

Si el período de retención predeterminado se modifica después de la ingesta de una versión de objeto, la fecha de retención de la versión del objeto permanece igual y no se vuelve a calcular utilizando el nuevo período de retención predeterminado.

Debes tener el s3:PutBucketObjectLockConfiguration permiso, o ser la cuenta root, para completar esta operación.

El Content-MD5 El encabezado de la solicitud debe especificarse en la solicitud PUT.

Ejemplo de solicitud

Este ejemplo habilita el bloqueo de objetos S3 para un depósito y establece el modo de retención predeterminado en CUMPLIMIENTO y el período de retención predeterminado en 6 años.

PUT /bucket?object-lock HTTP/1.1
Accept-Encoding: identity
Content-Length: 308
Host: host
Content-MD5: request header
User-Agent: s3sign/1.0.0 requests/2.24.0 python/3.8.2
X-Amz-Date: date
X-Amz-Content-SHA256: authorization-string
Authorization: authorization-string

<ObjectLockConfiguration>
    <ObjectLockEnabled>Enabled</ObjectLockEnabled>
    <Rule>
        <DefaultRetention>
            <Mode>COMPLIANCE</Mode>
            <Years>6</Years>
        </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

Cómo determinar la retención predeterminada para un bucket

Para determinar si S3 Object Lock está habilitado para un bucket y ver el modo de retención predeterminado y el período de retención, utilice cualquiera de estos métodos:

  • Ver el depósito en el Administrador de inquilinos. Ver "Ver depósitos S3" .

  • Emite una solicitud GetObjectLockConfiguration.

Obtener configuración de bloqueo de objeto

La solicitud GetObjectLockConfiguration le permite determinar si S3 Object Lock está habilitado para un depósito y, si está habilitado, ver si hay un modo de retención predeterminado y un período de retención configurados para el depósito.

Cuando se incorporan nuevas versiones de objetos al depósito, se aplica el modo de retención predeterminado si x-amz-object-lock-mode No está especificado. El período de retención predeterminado se utiliza para calcular la fecha de retención hasta si x-amz-object-lock-retain-until-date No está especificado.

Debes tener el s3:GetBucketObjectLockConfiguration permiso, o ser la cuenta root, para completar esta operación.

Ejemplo de solicitud

GET /bucket?object-lock HTTP/1.1
Host: host
Accept-Encoding: identity
User-Agent: aws-cli/1.18.106 Python/3.8.2 Linux/4.4.0-18362-Microsoft botocore/1.17.29
x-amz-date: date
x-amz-content-sha256: authorization-string
Authorization: authorization-string

Ejemplo de respuesta

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIXk=
x-amz-request-id: B34E94CACB2CEF6D
Date: Fri, 04 Sep 2020 22:47:09 GMT
Transfer-Encoding: chunked
Server: AmazonS3

<?xml version="1.0" encoding="UTF-8"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <ObjectLockEnabled>Enabled</ObjectLockEnabled>
    <Rule>
        <DefaultRetention>
            <Mode>COMPLIANCE</Mode>
            <Years>6</Years>
        </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

Cómo especificar la configuración de retención para un objeto

Un depósito con el bloqueo de objetos S3 habilitado puede contener una combinación de objetos con y sin configuraciones de retención de bloqueo de objetos S3.

Las configuraciones de retención a nivel de objeto se especifican mediante la API REST de S3. La configuración de retención de un objeto anula cualquier configuración de retención predeterminada para el depósito.

Puede especificar las siguientes configuraciones para cada objeto:

  • Modo de retención: CUMPLIMIENTO o GOBERNANZA.

  • Retain-until-date: una fecha que especifica durante cuánto tiempo StorageGRID debe conservar la versión del objeto.

    • En el modo CUMPLIMIENTO, si la fecha de retención hasta está en el futuro, el objeto se puede recuperar, pero no se puede modificar ni eliminar. La fecha de conservación hasta se puede aumentar, pero esta fecha no se puede disminuir ni eliminar.

    • En el modo GOBERNANZA, los usuarios con permiso especial pueden omitir la configuración de conservar hasta la fecha. Pueden eliminar una versión de un objeto antes de que transcurra su período de retención. También pueden aumentar, disminuir o incluso eliminar la fecha de conservación.

  • Retención legal: al aplicar una retención legal a una versión de un objeto, se bloquea inmediatamente ese objeto. Por ejemplo, es posible que necesites colocar una retención legal en un objeto que esté relacionado con una investigación o una disputa legal. Una retención legal no tiene fecha de vencimiento, sino que permanece vigente hasta que se elimina explícitamente.

    La configuración de retención legal de un objeto es independiente del modo de retención y de la fecha de retención. Si una versión de un objeto está bajo retención legal, nadie puede eliminar esa versión.

Para especificar la configuración de bloqueo de objetos S3 al agregar una versión de objeto a un depósito, emita un"PonerObjeto" ,"Copiar objeto" , o"Crear carga de varias partes" pedido.

Puedes utilizar lo siguiente:

  • x-amz-object-lock-mode, que puede ser CUMPLIMIENTO o GOBERNANZA (sensible a mayúsculas y minúsculas).

    Nota Si lo especifica x-amz-object-lock-mode , también debe especificar x-amz-object-lock-retain-until-date .
  • x-amz-object-lock-retain-until-date

    • El valor de conservación hasta la fecha debe tener el formato 2020-08-10T21:46:00Z . Se permiten fracciones de segundo, pero solo se conservan 3 dígitos decimales (precisión de milisegundos). No se permiten otros formatos ISO 8601.

    • La fecha de conservación debe ser en el futuro.

  • x-amz-object-lock-legal-hold

    Si la retención legal está activada (distingue entre mayúsculas y minúsculas), el objeto se coloca bajo una retención legal. Si la retención legal está desactivada, no se aplica ninguna retención legal. Cualquier otro valor generará un error 400 Solicitud incorrecta (argumento inválido).

Si utiliza alguno de estos encabezados de solicitud, tenga en cuenta estas restricciones:

  • El Content-MD5 El encabezado de solicitud es obligatorio si lo hay x-amz-object-lock-* El encabezado de solicitud está presente en la solicitud PutObject. Content-MD5 no es necesario para CopyObject o CreateMultipartUpload.

  • Si el depósito no tiene habilitado el bloqueo de objetos S3 y un x-amz-object-lock-* Si el encabezado de solicitud está presente, se devuelve un error 400 Solicitud incorrecta (InvalidRequest).

  • La solicitud PutObject admite el uso de x-amz-storage-class: REDUCED_REDUNDANCY para que coincida con el comportamiento de AWS. Sin embargo, cuando se ingiere un objeto en un bucket con el bloqueo de objetos S3 habilitado, StorageGRID siempre realizará una ingesta de confirmación dual.

  • Una respuesta de versión GET o HeadObject posterior incluirá los encabezados x-amz-object-lock-mode , x-amz-object-lock-retain-until-date , y x-amz-object-lock-legal-hold , si está configurado y si el remitente de la solicitud tiene la información correcta s3:Get* permisos.

Puedes utilizar el s3:object-lock-remaining-retention-days Clave de condición de política para limitar los períodos de retención mínimos y máximos permitidos para sus objetos.

Cómo actualizar la configuración de retención de un objeto

Si necesita actualizar la configuración de retención o retención legal para una versión de objeto existente, puede realizar las siguientes operaciones de subrecurso de objeto:

  • PutObjectLegalHold

    Si el nuevo valor de retención legal está activado, el objeto se coloca bajo una retención legal. Si el valor de retención legal está DESACTIVADO, se levanta la retención legal.

  • PutObjectRetention

    • El valor del modo puede ser CUMPLIMIENTO o GOBERNANZA (distingue entre mayúsculas y minúsculas).

    • El valor de conservación hasta la fecha debe tener el formato 2020-08-10T21:46:00Z . Se permiten fracciones de segundo, pero solo se conservan 3 dígitos decimales (precisión de milisegundos). No se permiten otros formatos ISO 8601.

    • Si una versión de objeto tiene una fecha de conservación existente, solo puedes aumentarla. El nuevo valor debe estar en el futuro.

Cómo utilizar el modo GOBERNANZA

Los usuarios que tengan la s3:BypassGovernanceRetention El permiso puede omitir la configuración de retención activa de un objeto que utiliza el modo GOBERNANZA. Cualquier operación DELETE o PutObjectRetention debe incluir el x-amz-bypass-governance-retention:true encabezado de solicitud. Estos usuarios pueden realizar estas operaciones adicionales:

  • Realice las operaciones DeleteObject o DeleteObjects para eliminar una versión de un objeto antes de que transcurra su período de retención.

    Los objetos que están bajo retención legal no se pueden eliminar. La retención legal debe estar DESACTIVADA.

  • Realice operaciones PutObjectRetention que cambien el modo de la versión de un objeto de GOBERNANZA a CUMPLIMIENTO antes de que transcurra el período de retención del objeto.

    Nunca se permite cambiar el modo de CUMPLIMIENTO a GOBERNANZA.

  • Realice operaciones PutObjectRetention para aumentar, disminuir o eliminar el período de retención de una versión de objeto.