Por que consigo excluir objetos mesmo depois de ativar o Object Lock no meu bucket do Amazon S3?

4 minuto de leitura
0

Ativei o Object Lock para meu bucket do Amazon Simple Storage Service (Amazon S3). Preciso saber por que ainda consigo excluir alguns objetos desse bucket.

Resolução

As configurações do Object Lock em nível de objeto determinam se você pode excluir um objeto de um bucket do Amazon S3 com o Object Lock.

Para determinar por que você ainda pode excluir um objeto específico em um bucket com Object Lock, verifique a configuração de Object Lock aplicada ao objeto. Verifique também o modo de exclusão.

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Verificar a retenção legal do Object Lock e as configurações de retenção de Object Lock no objeto

Para verificar essas configurações, abra o console do Amazon S3 e navegue até a página Propriedades do objeto. Você também pode executar o comando head-object da AWS CLI:

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

A saída é semelhante à seguinte:

{  
 "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"  
}

Se você tiver aplicado uma retenção legal no objeto, verá os campos ObjectLockLegalHoldStatus na saída. Se você tiver aplicado a retenção do Object Lock no objeto, também verá os campos ObjectLockModeObjectLockRetainUntilDate.

Você não ativou a retenção legal do Object Lock ou a retenção do Object Lock no objeto

É possível excluir permanentemente o objeto.

Você ativou a retenção legal do Object Lock no objeto

Você pode excluir permanentemente o objeto somente depois que um usuário com as permissões s3:PutObjectLegalHold desativar explicitamente a retenção legal do objeto.

Você ativou a retenção do Object Lock no objeto

Se o objeto estiver protegido pelo modo GOVERNANCE, você poderá excluí-lo permanentemente com as seguintes condições, mesmo antes do término do período de retenção:

  • Você tem permissões s3:BypassGovernanceRetention.
  • Você incluiu explicitamente x-amz-bypass-governance-retention:true como cabeçalho da solicitação na solicitação DELETE.

Por padrão, o console do Amazon S3 inclui o cabeçalho x-amz-bypass-governance-retention:true em uma solicitação DELETE. Portanto, se você tiver permissões s3:BypassGovernanceRetention, poderá usar o console do S3 para excluir uma versão de objeto protegida pelo modo GOVERNANCE.

Com permissões s3:BypassGovernanceRetention, você também pode usar a AWS CLI para excluir uma versão do objeto. Passe a opção --bypass-governance-retention no comando delete-object:

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

Se o objeto estiver protegido pelo modo COMPLIANCE, nenhum usuário, incluindo a conta raiz, poderá excluí-lo permanentemente até que o período de retenção termine.

Verificar o modo de exclusão

DELETE simples

Em uma operação DELETE simples, você exclui um objeto sem especificar o ID da versão do objeto na solicitação de exclusão. 

Você pode realizar uma operação DELETE simples em qualquer objeto que esteja em um bucket com Object Lock, independentemente das configurações do Object Lock. A operação DELETE simples não remove dados do bucket. Ela apenas adiciona um marcador de exclusão ao bucket e mantém a versão atual como não atual.

DELETE permanente

Em uma operação DELETE permanente, você exclui um objeto especificando o ID da versão do objeto na solicitação de exclusão.

Você pode realizar uma operação DELETE permanente em um objeto protegido pelo modo de retenção GOVERNANCE mesmo antes do término do período de retenção. No entanto, deve ter as permissões para ignorar o modo GOVERNANCE.

Não é possível executar uma exclusão permanente em um objeto sob nenhuma das seguintes condições:

  • O objeto está protegido pelo modo de retenção COMPLIANCE, e o período de retenção ainda não acabou.
  • A retenção legal é aplicada ao objeto.

Excluir por meio de regras do S3 Lifecycle

Regras do S3 Lifecycle continuam realizando expirações das versões atuais por meio de operações simples de exclusão, independentemente das configurações do Object Lock em nível de objeto. No entanto, essas regras não excluem permanentemente as versões não atuais quando elas estão protegidas pelo Object Lock.

Informações relacionadas

Retenções legais

Modos de retenção

AWS OFICIAL
AWS OFICIALAtualizada há um ano