A exclusão reversível ajuda a proteger seus dados do Cloud Storage caso um objeto ou bucket seja excluído acidentalmente ou de forma maliciosa. O recurso de exclusão reversível preserva objetos e buckets que são excluídos ou substituídos, mantendo-os em um estado de exclusão reversível por um período especificado. Durante esse período, o objeto ou bucket não pode ser excluído permanentemente e pode ser restaurado.
A exclusão reversível é ativada por padrão para todos os buckets compatíveis, com uma duração de retenção padrão de 7 dias. É possível definir uma duração de retenção padrão diferente usando tags.
Nesta página, descrevemos como funciona a exclusão reversível.
Políticas de exclusão reversível
Quando a exclusão reversível está ativada em um bucket, a exclusão do bucket ou dos objetos dentro dele faz com que o recurso entre em um estado de exclusão reversível, em vez de ser excluído permanentemente. Para ativar a exclusão reversível em um bucket, defina uma política de exclusão reversível que define por quanto tempo os recursos excluídos de maneira reversível são retidos.
As políticas de exclusão reversível funcionam das seguintes maneiras:
A política de exclusão reversível inclui uma duração de retenção que define por quanto tempo os recursos excluídos de maneira reversível são retidos antes de serem excluídos permanentemente. A duração padrão é de 7 dias, mas é possível personalizar esse período entre 7 e 90 dias. Para desativar a exclusão reversível, defina a duração da retenção como 0.
Uma política de exclusão reversível padrão é definida automaticamente em todos os buckets recém-criados, exceto aqueles que usam produtos ou recursos incompatíveis com a exclusão reversível (como buckets zonais que usam o Rapid Bucket).
É possível definir, editar ou desativar uma política de exclusão reversível ao criar ou atualizar um bucket.
Quando você edita uma política de exclusão reversível, as mudanças feitas só se aplicam aos recursos que são excluídos depois que a nova política entra em vigor. Os recursos que foram excluídos antes da nova política entrar em vigor são mantidos pela duração de retenção original que estava em vigor quando o recurso foi excluído. Em outras palavras, os recursos excluídos de forma reversível continuam a aderir ao período de armazenamento que estava ativo no momento da exclusão.
Por exemplo, imagine que você definiu uma política de exclusão reversível em um bucket com uma duração de retenção de sete dias. Você exclui o objeto
object-A.png, que é excluído de maneira reversível. Em seguida, você altera a duração da retenção da política para 10 dias e exclui o objetoobject-B.png, que também é excluído de maneira reversível.object-A.pngserá retido por sete dias no estado de exclusão reversível, enquantoobject-B.pngserá retido por 10 dias.As mudanças no período de armazenamento de uma política de exclusão reversível levam até 30 segundos para serem propagadas.
Para saber como definir e gerenciar políticas de exclusão reversível em buckets, consulte Definir e gerenciar políticas de exclusão reversível.
Propriedades de recursos excluídos de forma reversível
Quando um bucket ou objeto é excluído de acordo com uma política de exclusão reversível ativa, o recurso passa para um estado de exclusão reversível. É possível restaurar recursos excluídos de maneira reversível durante o período de retenção.
Os recursos excluídos de maneira reversível têm as seguintes características:
Os objetos e buckets excluídos de forma reversível não podem ser lidos, modificados ou substituídos. As únicas operações compatíveis são listá-los ou restaurá-los.
Os recursos excluídos de maneira reversível ficam ocultos das operações de lista por padrão. Para conferir recursos excluídos de maneira reversível, é necessário especificar explicitamente uma flag ou um filtro para conferir os recursos.
Não é possível modificar um bucket excluído de forma reversível ou listar o conteúdo dele até que o próprio bucket seja restaurado. O método usado para restaurar um bucket excluído de maneira reversível afeta se os objetos no bucket também são restaurados:
É possível restaurar um bucket excluído de maneira reversível e os objetos dele ao mesmo tempo usando o console do Google Cloud .
A restauração de um bucket usando a Google Cloud CLI ou a API JSON restaura apenas o bucket vazio. Em seguida, é preciso restaurar os objetos em uma operação separada para recuperar o conteúdo.
Se o nome de um bucket for usado por um novo bucket ativo, não será possível restaurar o bucket excluído de maneira reversível até que o bucket ativo conflitante seja removido.
Se o projeto for excluído, qualquer bucket com a exclusão reversível ativada será mantido pelo período de retenção da exclusão reversível ou pela janela de recuperação do projeto doGoogle Cloud , o que for mais curto. Após esse período, o bucket é excluído permanentemente.
Se você restaurar um projeto excluído, os buckets que estavam ativos quando o projeto foi excluído serão restaurados como buckets ativos. Os buckets que foram excluídos de forma reversível quando o projeto foi excluído permanecem excluídos de forma reversível até que a duração da retenção termine.
Os buckets que não têm a exclusão reversível ativada podem ser excluídos imediatamente quando um projeto é excluído e talvez não possam ser restaurados.
Alguns recursos do Cloud Storage são compatíveis com políticas de exclusão reversível, mas não afetam os objetos excluídos de maneira reversível. Exemplos desses recursos são Autoclass, Gerenciamento do ciclo de vida de objetos, Bloqueio de bucket e Bloqueio de retenção de objetos.
Para instruções sobre como restaurar objetos ou buckets excluídos de maneira reversível, consulte Restaurar objetos excluídos de maneira reversível ou Restaurar buckets excluídos de maneira reversível.
Restaurações de objetos
Quando você restaura um objeto excluído de maneira reversível, o Cloud Storage cria uma nova cópia ativa desse objeto no mesmo bucket. A versão original, excluída de maneira reversível, permanece em segundo plano até que o período de armazenamento expire oficialmente. A lista a seguir descreve os principais comportamentos de restauração:
Quando você restaura um objeto, o Cloud Storage gera uma nova versão dele. Para mais informações sobre versões de objetos, consulte Imutabilidade de objetos.
Se já houver um objeto ativo com o mesmo nome de um objeto excluído de maneira reversível quando você restaurar o objeto excluído de maneira reversível, o objeto restaurado vai substituir a versão ativa atual. O objeto substituído que estava ativo é excluído de maneira reversível automaticamente.
Nesse cenário específico, o bucket vai conter duas cópias do objeto restaurado (uma nova cópia ativa e a cópia antiga excluída de maneira reversível) ao lado da versão recém-excluída de maneira reversível do objeto que foi substituído.
Independentemente do nível de armazenamento original do objeto ou de qualquer configuração ativa da classe automática, todos os objetos restaurados são gravados na classe de armazenamento Standard Storage.
Métodos de restauração de objetos
É possível restaurar objetos excluídos de maneira reversível usando um dos dois caminhos de execução, com base nos seus requisitos de escalonamento:
Restaurar objetos um por um: usado para restaurar de forma síncrona objetos individuais.
Restaurar objetos em massa: usado para recuperação de dados em grande escala. É possível iniciar operações assíncronas de longa duração para recuperar grandes grupos de objetos que correspondem a critérios de filtro específicos.
Como restaurar objetos com caminhos duplicados
Embora seja raro, objetos duplicados com exclusão reversível com nomes e valores de geração idênticos podem ocorrer em buckets com namespace hierárquico ativado. Esse conflito pode acontecer se você renomear pastas que contêm objetos com nomes duplicados em buckets com o namespace hierárquico ativado. Nesse cenário, é raro, mas possível, que dois objetos excluídos de maneira reversível compartilhem o mesmo número de geração.
Para entender esse cenário, confira o exemplo a seguir:
Você tem um objeto chamado
cat.pngdentro de uma pasta chamadamy-folder-A.cat.pngrecebe o número de geração999. Você excluicat.png, que é excluído de forma reversível.Você exclui a pasta mãe vazia
my-folder-A.Em outro lugar do armazenamento, você tem uma pasta chamada
my-folder-B. Dentro dessa pasta, há um objeto diferente chamadocat.png. Por pura coincidência, esse objetocat.pngtambém recebe um número de geração999. Renomeiemy-folder-Bcomomy-folder-A. Devido ao namespace hierárquico, o caminho do objeto muda paramy-folder-A/cat.png.Você exclui esse segundo
cat.png, que é excluído de maneira reversível.
Agora, há dois objetos excluídos de maneira reversível chamados cat.png com o número de geração 999.
Para restaurar, listar ou acessar uma versão específica de um objeto excluído de maneira reversível entre
duplicatas, é necessário fornecer um parâmetro restoreToken exclusivo na solicitação.
É necessário incluir o parâmetro restoreToken ao restaurar, listar ou
acessar versões de objetos excluídos de maneira reversível em buckets com namespace hierárquico
ativado. Se você não incluir o parâmetro restoreToken quando houver objetos duplicados,
um erro vai solicitar o token. O envio de um token, nome ou número de geração incorreto retornará um erro indicando que o objeto não foi encontrado. Para mais informações sobre o parâmetro restoreToken,
consulte o método objects.restore.
Preços
Os objetos excluídos de forma reversível continuam acumulando cobranças de armazenamento até que o período de retenção expire e eles sejam excluídos permanentemente. Os objetos que são excluídos de maneira reversível antes do término da duração mínima de armazenamento estão sujeitos a cobranças por exclusão antecipada, a menos que tenham sido armazenados no Standard Storage.
Para informações detalhadas sobre os custos associados à exclusão reversível, consulte Preços do Cloud Storage.
Reduzir os custos de objetos temporários ao usar a exclusão reversível
Se um bucket tiver principalmente objetos temporários de curta duração, ativar a exclusão reversível nele poderá resultar em um aumento significativo nos custos de armazenamento. Para reduzir os custos de objetos temporários, recomendamos o seguinte:
Se você precisar renomear um objeto, use o método
objects.moveda API JSON para fazer isso. Não renomeie o objeto copiando-o.Armazene objetos temporários em buckets que não tenham a exclusão reversível ativada.
Os objetos temporários geralmente têm um ciclo de vida curto antes de serem excluídos. Os objetos temporários podem ser:
Dados usados como origem para criar objetos compostos
Dados que são gerados novamente para uma finalidade de curta duração, como resultados de consulta ou arquivos de preparo
Dados de cargas de trabalho com alta frequência de gravação e exclusão (por exemplo, milhões de exclusões diárias)
Dados que podem ser excluídos permanentemente por acidente 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:
Rapid Bucket: os buckets zonais que usam o Rapid Bucket não são compatíveis com a exclusão reversível.
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 o controle de versões de objetos também estiver ativado no bucket, os objetos ativos excluídos se tornarão não atuais, e os objetos não atuais excluídos serão excluídos de forma reversível.
Controle de versões de objeto: 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.
-
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 extra de proteção, retendo os objetos excluídos por um período separado de retenção da exclusão reversível.
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ê 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. 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.
Recomendador: é 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
- Saiba como definir políticas de exclusão reversível.
- Saiba como restaurar objetos excluídos de maneira reversível.
- Saiba mais sobre a restrição de política de
storage.softDeletePolicySeconds.