A exclusão reversível ajuda a proteger os 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 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 sete dias. É possível definir uma duração de retenção padrão diferente usando tags.
Esta página descreve como a exclusão reversível funciona.
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 mantidos.
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 mantidos antes de serem excluídos permanentemente. A duração de retenção padrão é de sete dias, e é possível personalizar a duração de retenção para qualquer período entre sete e 90 dias. Para desativar a exclusão reversível, defina a duração de 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 que são incompatíveis com a exclusão reversível (como buckets zonais que usam Rapid Bucket).
É possível definir, editar ou desativar uma política de exclusão reversível ao criar ou atualizar um bucket.
Ao editar uma política de exclusão reversível, as mudanças feitas só se aplicam aos recursos excluídos depois que a nova política entra em vigor. Os recursos excluídos antes da entrada em vigor da nova política 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 maneira reversível continuam aderindo ao período de armazenamento que estava ativo no momento da exclusão.
Por exemplo, digamos que você defina 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ê muda a duração de 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á mantido por sete dias no estado de exclusão reversível, enquantoobject-B.pngserá mantido 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 maneira reversível
Quando um bucket ou objeto é excluído em uma política de exclusão reversível ativa, o recurso faz a transição para um estado de exclusão reversível. É possível restaurar recursos excluídos de maneira reversível durante a duração da retenção.
Os recursos excluídos de maneira reversível têm as seguintes características:
Objetos e buckets excluídos de maneira reversível não podem ser lidos, modificados ou substituídos. As únicas operações compatíveis são listar ou restaurar.
Os recursos excluídos de maneira reversível são ocultos das operações de lista por padrão. Para visualizar recursos excluídos de maneira reversível, é necessário especificar explicitamente uma flag ou um filtro para visualizar os recursos.
Não é possível modificar um bucket excluído de maneira reversível ou listar o conteúdo dele até que o 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 Google Cloud .
A restauração de um bucket usando a Google Cloud CLI ou a API JSON restaura apenas o bucket vazio. Em seguida, é necessário restaurar os objetos em uma operação separada para recuperar o conteúdo.
Se um nome de 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 seu Google Cloud projeto for excluído, 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.
Alguns recursos do Cloud Storage são compatíveis com políticas de exclusão reversível, mas não afetam objetos excluídos de maneira reversível. Exemplos desses recursos são a classe automática, o gerenciamento do ciclo de vida de objetos, o bloqueio de bucket e o 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 um objeto ativo com o mesmo nome de um objeto excluído de maneira reversível já existir quando você restaurar o objeto excluído de maneira reversível, o objeto restaurado vai substituir a versão ativa existente. O objeto substituído que era 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) junto com a versão recém-excluída de maneira reversível do objeto que foi substituído.
Independentemente da camada 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.
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 requisitos de escala:
Restaurar objetos um de cada vez: usado para restaurar objetos individuais de forma síncrona.
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 correspondam a critérios de filtro específicos.
Restaurar objetos com caminhos duplicados
Embora seja raro, objetos duplicados excluídos de maneira 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 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, consulte o exemplo a seguir:
Você tem um objeto chamado
cat.pngdentro de uma pasta chamadamy-folder-A.cat.pngrecebe um número de geração de999. Você excluicat.png, que é excluído de maneira 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ção de999. Você renomeiamy-folder-Bparamy-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 duplicados, é necessário fornecer um parâmetro restoreToken exclusivo na solicitação.
A inclusão do parâmetro restoreToken é necessária 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 do token, nome ou número de geração errado vai 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 maneira reversível continuam acumulando cobranças de armazenamento até que o período de retenção expire e 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 incorrem em cobranças de exclusão antecipada, a menos que o objeto tenha sido armazenado no Standard Storage.
Para informações detalhadas sobre os custos associados à exclusão reversível, consulte Preços do Cloud Storage.
Reduzir custos de objetos temporários ao usar a exclusão reversível
Se um bucket contiver principalmente objetos temporários de curta duração, a ativação da exclusão reversível no bucket poderá resultar em custos de armazenamento significativamente maiores. Para ajudar a reduzir os custos de objetos temporários, recomendamos o seguinte:
Se você precisar renomear um objeto, use o
objects.movemétodo da API JSON para renomear o objeto automaticamente. 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 normalmente 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 regenerados para uma finalidade de curta duração, como resultados de consultas ou arquivos de preparação
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 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 oferecem suporte à 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 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.
-
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 atendam às políticas de retenção. A exclusão reversível oferece uma camada extra de proteção, mantendo os 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. 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 Recomendador de exclusão reversível.
A seguir
- Saiba como usar a exclusão reversível.
- Saiba como usar objetos excluídos de maneira reversível.
- Saiba mais sobre a
storage.softDeletePolicySecondsrestrição de política.