¿Por qué puedo eliminar objetos incluso después de haber activado el bloqueo de objetos en mi bucket de Amazon S3?

4 minutos de lectura
0

He activado Object Lock para mi bucket de Amazon Simple Storage Service (Amazon S3). Necesito saber por qué todavía puedo eliminar algunos objetos de este depósito.

Resolución

La configuración de Object Lock a nivel de objeto determina si puede eliminar un objeto de un bucket de Amazon S3 con Object Lock.

Para determinar por qué aún puede eliminar un objeto concreto de un depósito con Object Lock, compruebe la configuración de bloqueo de objetos que se aplica al objeto. Compruebe también el modo de eliminación.

Nota: Si recibe errores al ejecutar los comandos de la AWS Command Line Interface (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Compruebe la configuración de retención legal de Object Lock y Object Lock en el objeto

Para comprobar esta configuración, abra la consola de Amazon S3 y vaya a la página de Propiedades del objeto. También puede ejecutar el comando head-object de la CLI de AWS:

aws s3api head-object --bucket sample-bucket --key test.png

El resultado es similar al siguiente:

{  
 "AcceptRanges": "bytes",  
 "LastModified": "2023-03-09T04:39:46+00:00",  
 "ContentLength": 285074,  
 "ETag": "\"1e8cd7fb4e4ddeafdc6513200f47958f\"",  
 "VersionId": "Cm_wsGgkj8L3fySNPUu.J7xV1HEKMhGr",  
 "ContentType": "image/png",  
 "ServerSideEncryption": "aws:kms",  
 "Metadata": {},  
 "SSEKMSKeyId": "arn:aws:kms:us-east-1:111111111111:key/eod57e78-8c46-454a-8c22-897d8be9a5f4",  
 "ReplicationStatus": "PENDING",  
 "ObjectLockMode": "COMPLIANCE",  
 "ObjectLockRetainUntilDate": "2023-03-10T04:39:45.913000+00:00",  
 "ObjectLockLegalHoldStatus": "ON"  
}

Si aplicó una retención legal al objeto, verá los campos ObjectLockLegalHoldStatus en el resultado. Si aplicó la retención Object Lock al objeto, también verá los campos ObjectLockMode y ObjectLockRetainUntilDate.

No activó Object Lock, la retención legal ni la retención Object Lock en el objeto

Puede eliminar el objeto de forma permanente.

Ha activado la retención legal del objeto de Object Lock

Puede eliminar el objeto de forma permanente solo después de que un usuario con los permisos s3:PutObjectLegalHold desactive explícitamente la retención legal del objeto.

Ha activado el bloqueo de objetos (retención) en el objeto

Si el objeto está protegido por el modo GOVERNANCE, puede eliminarlo permanentemente en las siguientes condiciones, incluso antes de que finalice el período de retención:

  • Tiene permisos s3:BypassGovernanceRetention.
  • Incluyó explícitamente x-amz-bypass-governance-retention:true como encabezado de solicitud en la solicitud DELETE.

De forma predeterminada, la consola Amazon S3 incluye el encabezado x-amz-bypass-governance-retention:true en una solicitud DELETE. Por lo tanto, si tiene los permisos s3:BypassGovernanceRetention, puede usar la consola de S3 para eliminar una versión de objeto que esté protegida por el modo GOVERNANCE.

Con los permisos s3:BypassGovernanceRetention, también puede usar AWS CLI para eliminar una versión de objeto. Pase la opción --bypass-governance-retention del comando delete-object:

aws s3api delete-object --bucket sample-bucket --key test.txt --version-id "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq" --bypass-governance-retention

Si el objeto está protegido por el modo COMPLIANCE, ningún usuario, incluida la cuenta raíz, puede eliminarlo permanentemente hasta que finalice el período de retención.

Compruebe el modo de eliminación

DELETE simple

En una operación DELETE simple, se elimina un objeto sin especificar el ID de la versión del objeto en la solicitud de eliminación. 

Con Object Lock, puede realizar una operación DELETE simple en cualquier objeto que esté en un depósito, independientemente de la configuración de Object Lock. Una DELETE simple no elimina ningún dato del bucket. Solo añade un marcador de eliminación al bucket y conserva la versión actual como no actual.

DELETE permanente

En una operación DELETE permanente, se elimina un objeto especificando el ID de la versión del objeto en la solicitud de eliminación.

Puede realizar una operación de DELETE permanente en un objeto que esté protegido por el modo de retención GOVERNANCE incluso antes de que finalice el período de retención. Sin embargo, debe tener los permisos para omitir el modo GOVERNANCE.

No puedes realizar una DELETE permanente en un objeto en ninguna de las siguientes condiciones:

  • El objeto está protegido por el modo de retención COMPLIANCE y el período de retención no ha terminado.
  • Se aplica una retención legal al objeto.

Eliminar mediante las reglas del ciclo de vida de S3

Las reglas del ciclo de vida de S3 siguen haciendo caducar las versiones actuales mediante sencillas operaciones DELETE, independientemente de las configuraciones de Object Lock a nivel de objeto. Sin embargo, estas reglas no eliminan permanentemente las versiones no actuales si están protegidas por Object Lock.

Información relacionada

Retenciones legales

Modos de retención

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año