Fazer a exclusão reversível

Configuração Uso

Esta página descreve o recurso de exclusão reversível, que preserva objetos e buckets que são excluídos ou substituídos por um período especificado. A exclusão reversível ajuda a proteger seus dados contra exclusão acidental ou mal-intencionada, mantendo objetos ou buckets excluídos em um estado de exclusão reversível, durante o qual o objeto ou bucket 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, a exclusão do bucket ou dos objetos nele resulta na entrada do recurso em um estado de exclusão reversível em vez de ser excluído permanentemente. Os objetos e buckets excluídos de maneira reversível se comportam das seguintes maneiras:

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 o bucket e os objetos nele são mantidos antes de serem excluídos permanentemente.

Para saber como definir 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

Por padrão, a exclusão reversível é ativada em todos os buckets recém-criados. É possível editar uma política de exclusão reversível para ativar ou desativar a exclusão reversível de um bucket. Uma política de exclusão reversível pode ser definida, excluída ou editada durante uma solicitação de criação ou atualização de bucket.

As políticas de exclusão reversível se comportam das seguintes maneiras:

  • 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 de exclusão reversível a um bucket atual, ela não será aplicada a nenhum dos objetos ou buckets 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 eles tenham a exclusão reversível 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 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 nele 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. Quando você restaura um bucket excluído de maneira reversível usando a CLI gcloud ou a API JSON, o bucket é restaurado sem objetos ativos nele. Você precisará realizar uma operação de restauração de objeto ou adicionar novos objetos nele. É possível restaurar um bucket excluído de maneira reversível e os objetos dele ao mesmo tempo usando o Google Cloud console. Para saber mais sobre como usar buckets excluídos de maneira reversível, consulte Restaurar um bucket excluído de maneira reversível.

  • Quando você ativa ou altera uma política de exclusão reversível, a mudança pode levar até 30 segundos para ser totalmente propagada. Durante esse período, as configurações anteriores ainda são aplicadas. Exemplo:

    • Se você acabou de ativar a exclusão reversível, os objetos excluídos na janela de 30 segundos ainda poderão ser excluídos permanentemente.

    • Se você alterou o período de armazenamento da exclusão reversível, os objetos excluídos na janela de 30 segundos serão retidos com base no período de armazenamento antigo.

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

Dentro da duração de retenção de uma política de exclusão reversível, é possível restaurar objetos ou buckets excluídos, mas após o término da duração, o Cloud Storage exclui permanentemente o recurso excluído de maneira reversível.

Quando você cria um bucket, uma política de exclusão reversível é adicionada ao bucket com uma duração de retenção padrão de sete dias. É possível editar a duração de retenção de uma política ou definir uma nova duração de retenção padrão. A duração máxima de retenção que você pode definir é de 90 dias e a duração mínima de retenção que você pode definir é de 7 dias. Também é possível definir a duração de retenção como 0 para desativar a exclusão reversível no bucket.

Restauração de objetos excluídos de maneira reversível

Quando você restaura um objeto excluído de maneira reversível, o Cloud Storage cria uma cópia do objeto excluído de maneira reversível no mesmo bucket.

O comportamento de restauração de objetos excluídos de maneira reversível pode ser descrito da seguinte maneira:

  • Quando você restaura um objeto excluído de maneira reversível, o Cloud Storage cria uma nova versão ativa do objeto no mesmo bucket. A versão excluída de maneira reversível do objeto permanece no bucket até que a duração de retenção expire.

    Em alguns casos, se um objeto ativo já existir com o mesmo nome do objeto excluído de maneira reversível no momento da restauração, o objeto restaurado vai substituir o objeto ativo, e o objeto ativo será excluído de maneira reversível. Nesse cenário, o bucket contém os seguintes objetos:

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

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

  • 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 maneira síncrona ou criar uma operação de longa duração para restaurar em massa objetos que atendam a um determinado critério.

Restauração de objetos excluídos de maneira reversível em buckets com namespace hierárquico ativado

Embora raros, objetos excluídos de maneira reversível duplicados com nomes e valores de geração idênticos podem ocorrer em buckets com namespace hierárquico ativado. Imagine esta situação:

  1. O objeto folderA/my-object.txt é excluído de maneira reversível.
  2. A pasta mãe, folderA, é excluída.
  3. Um objeto diferente, folderB/my-object.txt, é movido para o caminho original renomeando folderB para folderA. Esse objeto agora se torna folderA/my-object.txt.
  4. Esse novo objeto folderA/my-object.txt também é excluído de maneira reversível.

Embora cada versão de objeto no Cloud Storage tenha um valor de geração exclusivo, objetos criados de forma independente, como o folderA/my-object.txt e o folderB/my-object.txt originais, podem compartilhar o mesmo valor de geração. Combinado com o cenário, isso pode resultar em dois objetos excluídos de maneira reversível com os mesmos nomes (folderA/my-object.txt) e valores de geração.

Para garantir que você restaure, liste ou receba o objeto correto, inclua o parâmetro restoreToken na solicitação.

Ao usar a exclusão reversível em buckets com namespace hierárquico ativado, considere as seguintes informações:

  • Se você tentar restaurar, listar ou receber objetos duplicados sem usar o parâmetro restoreToken, vai receber um erro pedindo para usar o parâmetro restoreToken na solicitação de restauração ou lista de objetos.

  • Se você usar valores incorretos para os parâmetros restoreToken, name ou generation como parte da solicitação de restauração, lista ou recebimento de objetos, vai receber um erro indicando que o objeto especificado não existe.

Restauração de buckets

Quando você restaura um bucket excluído de maneira reversível, ele retorna a um estado ativo, e os objetos que estavam no bucket no momento da exclusão também se tornam recuperáveis dentro da duração de retenção da exclusão reversível.

Assim como objetos excluídos de maneira reversível, o Cloud Storage exclui permanentemente um bucket excluído de maneira reversível no final da duração de retenção da exclusão reversível se o bucket excluído de maneira reversível não for restaurado durante a duração de retenção.

Preços

Os objetos excluídos de maneira reversível geram cobranças de armazenamento até que os objetos excluídos de maneira 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.

Otimização de custos de exclusão reversível

Para ajudar a reduzir os custos de armazenamento em objetos temporários de curta duração, mantendo a proteção de dados, recomendamos o seguinte:

  • Renomeie objetos em vez de copiar. Use a API Objects: move para renomear um objeto temporário de curta duração em vez de copiar o objeto e excluir o original.

  • Armazene dados temporários separadamente. Sempre que possível, armazene dados temporários em um bucket separado com a exclusão reversível desativada.

    Os dados temporários podem ter as seguintes características:

    • Dados usados como origem para criar objetos compostos.
    • Dados regenerados para uma finalidade de curta duração, como resultados de consultas ou arquivos de preparação.
    • Dados que têm um ciclo de vida curto e geralmente são excluídos em alguns dias.
    • Dados de cargas de trabalho que têm uma alta frequência de gravação e exclusão, por exemplo, milhões de exclusões por dia.
    • Dados que podem ser excluídos permanentemente por engano, sem impacto na continuidade da produção.

Interações com outros produtos e recursos

Quando a exclusão reversível está ativada, ela se comporta com outros produtos e recursos das seguintes maneiras:

  • 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 para excluí-los permanentemente.

    • Os objetos excluídos pelo gerenciamento do ciclo de vida de objetos são excluídos de maneira reversível. Se você também tiver o controle de versões de objetos ativado no bucket, os objetos ativos excluídos se tornarão não atuais, e os objetos não atuais excluídos se tornarão excluídos de maneira reversível.

  • Controle de versões de objetos: quando você exclui um objeto não atual, 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 Storage.

  • Recursos de bloqueio de bucket e bloqueio de retenção de objetos: esses recursos impedem que você exclua objetos até que eles cumpram as políticas de retenção. A exclusão reversível oferece uma camada adicional de proteção, retendo objetos excluídos por uma duração de retenção de exclusão reversível separada.

  • 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: uma exclusão reversível não pode restaurar as políticas do IAM em pastas gerenciadas. Se você fizer a exclusão reversível de um objeto e excluir uma pasta gerenciada que concede políticas de IAM para o objeto, 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. É possível mudar esse padrão usando 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: é possível ativar a API Recommender para receber sugestões e insights sobre como ativar ou desativar a exclusão reversível com base nos custos e no uso do Cloud Billing. Para saber mais, consulte o recomendador de exclusão reversível.

A seguir