Fazer a exclusão reversível

Configuração Uso

Esta página descreve o recurso de exclusão reversível, que preserva objetos excluídos ou substituídos e os buckets que os contêm por um período especificado. A exclusão reversível ajuda a proteger seus dados contra exclusão acidental ou maliciosa, mantendo objetos excluídos em um estado de exclusão reversível, durante o qual o objeto não pode ser excluído permanentemente. A exclusão reversível é ativada por padrão em todos os buckets e tem uma duração de retenção de sete dias, a menos que você ou sua organização tenham escolhido uma política diferente.

Visão geral

Quando você ativa a exclusão reversível em um bucket, os objetos excluídos dele entram em um estado de exclusão reversível em vez de serem excluídos permanentemente. Os objetos excluídos de forma reversível se comportam da seguinte maneira:

Para ativar a exclusão reversível em um bucket, crie uma política de exclusão reversível que especifique uma duração de retenção que controle por quanto tempo os objetos excluídos de maneira reversível são mantidos antes de serem excluídos permanentemente.

Para saber como criar e gerenciar uma política de exclusão reversível para ativar ou desativar a exclusão reversível em um bucket, consulte Usar a exclusão reversível.

Políticas de exclusão reversível

Uma política de exclusão reversível pode ser criada, excluída ou modificada durante a criação ou atualização de um bucket. Depois que uma política de exclusão reversível é criada, ela pode ser usada para ativar ou desativar a exclusão reversível no bucket.

As políticas de exclusão reversível se comportam da seguinte maneira:

  • A atualização da política de exclusão reversível de um bucket só se aplica a objetos que você exclui depois que a política de exclusão reversível entra em vigor. Os objetos que você excluiu antes da atualização são mantidos pelo tempo que estava em vigor quando foram excluídos.

    Por exemplo, imagine que você ativou uma política de exclusão reversível no bucket com a duração de retenção padrão de sete dias e excluiu o objeto cat.png. Nesse cenário, cat.png é retido como um objeto excluído de maneira reversível pelos próximos sete dias e depois é excluído permanentemente. Isso ocorre mesmo quando você muda ou remove a política de exclusão reversível do bucket.

  • Se você adicionar uma nova duração de retenção da exclusão reversível a um bucket existente, ela não será aplicada a nenhum dos objetos excluídos antes que a política de exclusão reversível entre em vigor.

  • Se você excluir o projeto, não será possível usar a exclusão reversível para restaurar os buckets ou objetos nele, mesmo que a exclusão reversível esteja ativada. Para garantir que você não perca seus dados em caso de exclusão maliciosa ou acidental, recomendamos limitar o acesso à exclusão no nível do projeto colocando uma garantia nos seus projetos ou fazendo backup de dados críticos para os negócios em buckets de um projeto diferente.

  • Se um bucket for excluído, os objetos dentro dele não serão excluídos permanentemente, mas não poderão ser listados ou restaurados, a menos que o bucket excluído de maneira reversível seja restaurado primeiro. Quando você restaura um bucket excluído de maneira reversível, ele é restaurado sem objetos ativos. Você vai precisar realizar uma operação de restauração de objeto ou adicionar novos objetos a ele. Para saber mais sobre o uso de buckets excluídos de forma reversível, consulte Restaurar um bucket excluído de forma reversível.

Duração da retenção da exclusão reversível

Quando você cria um bucket, uma política de exclusão reversível padrão é adicionada ao bucket com uma duração de retenção de 7 dias, que é a duração mínima de retenção para uma política de exclusão reversível. Para melhorar a proteção, você pode selecionar qualquer duração de retenção de até 90 dias. Como alternativa, defina a duração da retenção como 0 dias, o que desativa a exclusão reversível no bucket.

Durante a duração da retenção de uma política de exclusão reversível, é possível restaurar objetos excluídos, mas, após o término, o Cloud Storage exclui os objetos permanentemente. A duração da retenção da exclusão reversível é medida em segundos. No entanto, algumas ferramentas, como o Console do Google Cloud e a Google Cloud CLI, permitem definir e visualizar a duração da retenção usando outras unidades de tempo.

  • Um dia é considerado como sendo 86.400 segundos.

  • Um mês é considerado como sendo 31 dias, o que é 2.678.400 segundos.

Para a CLI gcloud, ao especificar um período de armazenamento, use um número inteiro e uma unidade, em que a unidade pode ser s, d ou m para representar segundos, dias ou meses, respectivamente. Por exemplo, 7d43200s define um período de armazenamento de 7 dias e 43.200 segundos (sete dias e meio).

É possível definir uma duração máxima de retenção de 7.776.000 segundos (90 dias) ou uma duração mínima de retenção de 604.800 segundos (7 dias). Ao usar APIs REST, também é possível definir a duração da retenção como um valor de 0, o que desativa a política de exclusão reversível.

Restaurar o comportamento

Quando você restaura um objeto de exclusão reversível, o Cloud Storage cria uma cópia do objeto excluído de maneira reversível no mesmo bucket do qual foi excluído. Os metadados do objeto restaurado são iguais aos metadados do objeto excluído. Ao final do período de retenção da exclusão reversível, o Cloud Storage exclui permanentemente o objeto excluído de maneira reversível.

É possível restaurar os objetos excluídos de forma reversível antes que a duração da retenção da exclusão reversível termine.

O comportamento de restauração para exclusão reversível pode ser descrito da seguinte maneira:

Se você excluir o projeto, o Cloud Storage excluirá permanentemente todos os buckets e objetos desse projeto. Nesse caso, não é possível restaurar objetos e buckets usando o recurso de exclusão reversível. Portanto, é importante tomar medidas para limitar o acesso a exclusões para envolvidos no projeto, como colocar uma garantia em projetos ou fazer backup de dados críticos para os negócios em buckets do em um projeto diferente.

  • Um objeto restaurado sempre substitui a versão ativa: se uma versão ativa do objeto já existir, a versão excluída de forma reversível vai substituir a versão ativa, e a versão ativa preexistente será excluída de forma reversível. Nesse cenário, o bucket contém os seguintes objetos:

    • O objeto ativo substituído que está no estado de exclusão reversível.

    • Duas cópias do objeto excluído de maneira reversível: uma cópia ativa e outra ainda excluída de forma reversível.

  • As cópias de objetos geram cobranças até a exclusão permanente: as cópias de objetos geram cobranças de armazenamento até que os objetos excluídos de forma reversível sejam excluídos permanentemente após o término da duração da retenção. Para mais informações sobre os custos associados a objetos excluídos temporariamente, consulte Preços do Cloud Storage.

  • Os objetos excluídos de maneira reversível podem ser restaurados usando vários métodos: é possível restaurar os objetos excluídos de maneira reversível de forma síncrona especificando uma lista de objetos ou criar uma operação de longa duração para restaurar em massa objetos excluídos entre dois carimbos de data/hora.

  • A tentativa de restaurar buckets excluídos de maneira reversível antes de 6 de agosto de 2024 resulta em um erro informando The specified bucket does not exist, e você precisa entrar em contato com o Cloud Customer Care para realizar a restauração.

Restaurar e extrair metadados de objetos em buckets com namespace hierárquico ativado

Em buckets do Cloud Storage com namespace hierárquico ativado, podem ocorrer objetos excluídos reversivelmente duplicados. Os objetos duplicados compartilham os mesmos valores de name e generation, causando possíveis ambiguidades durante a restauração.

Como os objetos duplicados ocorrem

Para entender como objetos duplicados com valores name e generation idênticos podem ocorrer, considere dois objetos folderA/my-object.txt e folderB/my-object.txt e realize a seguinte sequência de ações nos objetos:

  1. Exclua o objeto folderA/my-object.txt de forma reversível.
  2. Excluir a pasta pai do objeto folderA/my-object.txt, folderA.
  3. Renomeie folderB para folderA. Depois disso, o objeto folderB/my-object.txt se torna folderA/my-object.txt.
  4. Objeto de exclusão reversível folderA/my-object.txt, que tem o mesmo name do objeto excluído anteriormente.

Cada versão de um objeto no Cloud Storage tem um valor generation exclusivo. No entanto, se os objetos folderA/my-object.txt e folderB/my-object.txt forem criados de forma independente e não estiverem relacionados, eles poderão acidentalmente ter o mesmo valor generation.

Como resultado, é possível ter dois objetos excluídos temporariamente com o mesmo name (folderA/my-object.txt) e valor generation.

Para restaurar ou extrair os metadados do objeto my-object.txt pretendido (já que agora há dois objetos com o mesmo valor name e generation), é necessário fornecer um identificador exclusivo.

Identificação de objeto exclusivo com restoreToken

O restoreToken identifica de forma exclusiva o objeto correto que você quer restaurar ou recuperar. Para conferir o valor de restoreToken, liste os objetos excluídos de forma reversível em um bucket. Para mais detalhes, consulte Listar objetos excluídos de forma reversível.

Considerações e erros

Considere as seguintes informações e possíveis erros que você pode encontrar ao trabalhar com objetos excluídos temporariamente duplicados em buckets com namespace hierárquico ativado:

  • A ocorrência de dois objetos não relacionados com o mesmo valor de generation é extremamente improvável, e a sequência específica de ações necessárias para que eles também tenham o mesmo name torna essa situação ainda mais rara.

  • Como a ocorrência é rara, o parâmetro restoreToken pode não ser necessário para a maioria dos casos de uso. No entanto, é possível usar o restoreToken para recuperar objetos com precisão quando objetos duplicados excluídos temporariamente com o mesmo valor name e generation ocorrem.

  • Se você tentar restaurar ou extrair os metadados de objetos excluídos temporariamente sem especificar o restoreToken e houver vários objetos que correspondem ao valor especificado de name e generation, vai receber uma mensagem de erro indicativa de que é necessário especificar o restoretoken.

  • Se você tentar restaurar ou recuperar os metadados de objetos excluídos temporariamente fornecendo valores incorretos de restoreToken, name ou generation, vai receber um erro indicando que a chave especificada não existe.

Considerações com outros recursos

Quando a exclusão reversível está ativada, ela tem as seguintes interações com outros recursos do Cloud Storage:

  • Gerenciamento do ciclo de vida de objetos

    • As regras do gerenciamento do ciclo de vida de objetos não afetam os objetos excluídos de maneira reversível. Não é possível usar o Gerenciamento do ciclo de vida de objetos para mudar a classe de armazenamento de objetos excluídos de maneira reversível ou excluí-los permanentemente.

    • Os objetos excluídos pelo gerenciamento do ciclo de vida de objetos são excluídos de maneira reversível. Se o controle de versões de objetos também estiver ativado no bucket, os objetos ativos excluídos serão desativados, e os objetos desativados serão excluídos de forma reversível.

  • Controle de versões dos objetos

    Quando você exclui um objeto desatualizado, ele é excluído de maneira reversível.

  • Uploads de várias partes da API XML

    As partes de uploads de várias partes da API XML não são protegidas pela exclusão reversível.

  • Classe automática

    • As taxas de gerenciamento da classe automática não são cobradas para objetos excluídos de maneira reversível.

    • A classe automática não muda a classe de armazenamento de objetos excluídos de maneira reversível.

    • Quando você restaura um objeto excluído de maneira reversível, o objeto resultante é definido com a classe de armazenamento Standard.

  • Recursos de bloqueio de bucket e bloqueio de retenção de objetos

    Esses recursos impedem a exclusão de objetos até que eles cumpram as políticas de retenção. A exclusão reversível oferece uma camada extra de proteção ao manter objetos excluídos por um período de retenção da exclusão reversível separado.

  • Notificações do Pub/Sub

    A restauração de uma versão excluída de maneira reversível de um objeto aciona um evento OBJECT_FINALIZE.

  • Pastas gerenciadas: a exclusão reversível não pode restaurar as políticas do IAM em pastas gerenciadas. Se você excluir um objeto e uma pasta gerenciada que concede políticas do IAM para ele, talvez seja necessário recriar essas políticas do IAM antes de ter as permissões necessárias para restaurar o objeto excluído de maneira reversível.

  • Tags: se você criar um bucket sem incluir uma configuração de exclusão reversível, o padrão do Cloud Storage será criar o bucket com uma duração de retenção de exclusão reversível de sete dias. Para mudar esse padrão, use uma tag. A tag pode mudar a duração de retenção padrão para novos buckets para qualquer valor entre 7 e 90 dias ou pode mudar o padrão para desativar a exclusão reversível em novos buckets. Também é possível usar tags para desativar a exclusão reversível por padrão.

  • Recommender: ative a API Recommender para receber sugestões e insights sobre como ativar ou desativar a exclusão temporária com base nos custos e no uso do Cloud Billing. Para saber mais, consulte Recomendador de exclusão reversível.

A seguir