AWS S3 - Object Lock legal hold
Tags: aws, cloud, security, devops
Published: 2023-05-19 14:24:10

**Anotações sobre o AWS S3 Object Lock legal hold para ajudar na preparação das certificações AWS.**

Até o momento as anotações são para as certificações abaixo:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/se0sqtegn424nami6rz8.png)

- [Link oficial](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-legal-hold.html)

##**Definição do fornecedor**
_A operação Object Lock legal hold permite que você coloque uma retenção legal em uma versão de objeto. Assim como a definição de um período de retenção, uma retenção legal evita que uma versão do objeto seja substituída ou excluída. Porém, uma retenção legal não tem um período de retenção associado e permanecerá em vigor até ser removida._

##**Anotações gerais**
- **Veem desabilitado por padrão**
- **O Versionamento é habilitado automaticamente quando habilita o Object Lock Legal**
- Permite que você coloque uma retenção legal em uma versão de objeto.
- **Pode ser desabilitado a qualquer momento**
- Assim como definir um período de retenção, uma retenção legal impede que uma versão de objeto seja substituída ou excluída.
- No entanto, uma retenção legal não tem um período de retenção associado e permanece em vigor até ser removida.
- O objeto pode ser deletado quando desativado
- **Pode ser utilizado em casos de Ransoware**

##**Retention Modes**
[Documentação oficial](https://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/object-lock-overview.html#object-lock-retention-modes)

_Esses modos de retenção aplicam níveis diferentes de proteção aos objetos. Aplique um dos modos de retenção a qualquer versão de objeto protegida pelo bloqueio de objetos._

**Governance Mode**

- Os usuários não podem substituir nem excluir uma versão do objeto ou alterar as configurações de bloqueio, a menos que tenham permissões especiais. 
- Protege objetos contra a exclusão da maioria dos usuários, mas ainda pode conceder a alguns usuários permissão para alterar as configurações de retenção ou excluir o objeto, caso necessário. 
- Também é possível usar o Governance Mode para testar as configurações do período de retenção antes de criar um período de retenção do Compliance Mode.
- Para substituir ou remover as configurações de retenção do Governance Mode, um usuário deve ter a permissão `s3:BypassGovernanceRetention` e incluir explicitamente `x-amz-bypass-governance-retention:true` como um cabeçalho de solicitação com qualquer solicitação que exija a substituição do Governance Mode.


**Compliance Mode**

- Uma versão do objeto protegida não pode ser substituída nem excluída por qualquer usuário, inclusive o usuário root na Conta da AWS. 
- Quando um objeto estiver bloqueado no Compliance Mode, o modo de retenção não poderá ser alterado nem o período de retenção poderá ser encurtado. 
- O Compliance Mode ajuda a garantir que uma versão do objeto não possa ser substituída nem excluída durante o período de retenção.
- Retain Until Date, e o status de retenção legal para a versão do objeto especificada.
- A atualização dos metadados de uma versão do objeto, ocorrida quando você faz ou altera um bloqueio de objeto, não substitui a versão do objeto nem redefine o timestamp `Last-Modified`.


##**Restrições e limitações**
[Documentação oficial](https://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/object-lock-managing.html)

- As operações em lote do S3 não fazem alterações em nível de bucket.
- Todos os objetos listados no manifesto devem estar no mesmo bucket.
- O versionamento e o bloqueio de objetos do S3 devem ser configurados no bucket em que o trabalho é executado.
- A operação funciona na versão mais recente do objeto, a menos que uma versão seja explicitamente especificada no manifesto.
- `s3:PutObjectLegalHold` - A permissão é necessária na função do IAM para adicionar ou remover a retenção legal de objetos.
- `s3:GetBucketObjectLockConfiguration` A permissão do IAM é necessária para confirmar se o bloqueio de objetos do S3 está habilitado para o bucket do S3.