Exclusão reversível para blobs

A exclusão suave de blob protege um blob, snapshot ou versão individual contra excluções ou sobrescrevimentos acidentais ao manter os dados excluídos no sistema por um período especificado. Durante o período de retenção, você pode restaurar um objeto excluído de maneira reversível para seu estado no momento em que ele foi excluído. Após o término do período de retenção, o objeto é deletado permanentemente.

A exclusão temporária de blob faz parte de uma estratégia abrangente de proteção de dados na conta para dados de blob. Para obter a proteção ideal dos dados de blob, Microsoft recomenda habilitar os seguintes recursos de proteção de dados:

Para proteção contra cenários mais amplos de perda de dados, como exclusão acidental de conta ou ransomware, considere habilitar Backup do Azure além de recursos na conta. Para saber mais sobre as recomendações da Microsoft para proteção de dados, confira Visão geral da proteção de dados.

Atenção

Depois que você habilita a versão do blob para uma conta de armazenamento, toda operação de escrita em um blob nessa conta cria uma nova versão. Por esse motivo, ativar a versão de blob pode resultar em custos extras. Para minimizar os custos, use uma política de gerenciamento do ciclo de vida para excluir automaticamente as versões antigas. Para obter mais informações sobre o gerenciamento do ciclo de vida, confira Otimizar custos automatizando as camadas de acesso do Armazenamento de Blobs do Azure.

Como funciona a exclusão reversível de blob

Ao habilitar a exclusão reversível de blob para uma conta de armazenamento, você especifica um período de retenção entre 1 e 365 dias para os objetos excluídos. O período de retenção indica por quanto tempo os dados permanecerão disponíveis depois que forem excluídos ou substituídos. O relógio começa a contar o período de retenção assim que um objeto é excluído ou substituído.

Enquanto o período de retenção estiver ativo, você poderá restaurar um blob excluído, junto com seus instantâneos ou uma versão excluída chamando a operação Restaurar blob. O seguinte diagrama mostra como um objeto excluído pode ser restaurado quando a exclusão reversível de blob está habilitada:

Captura de tela de como um blob deletado suavemente pode ser restaurado durante o período de retenção.

Você pode alterar o período de retenção de exclusão reversível a qualquer momento. Um período de retenção atualizado se aplica somente aos dados que foram excluídos após a alteração do período de retenção. Todos os dados excluídos antes da alteração do período de retenção estão sujeitos ao período de retenção que estava em vigor no momento em que foram excluídos.

A tentativa de excluir um objeto excluído de modo reversível não afeta o tempo de expiração.

Se você desabilitar a exclusão reversível de blob, poderá continuar a acessar e recuperar objetos excluídos de maneira reversível na conta de armazenamento até que o período de retenção de exclusão reversível tenha decorrido.

O versionamento de blobs, que a Microsoft recomenda ativar junto com a exclusão temporária, está disponível para contas de uso geral v2, de blob em blocos e de armazenamento de Blob. Versionamento não é suportado para contas que possuem namespace hierárquico.

A versão 2017-07-29 e superiores da API REST do Armazenamento do Azure suporta a exclusão suave de blobs.

Importante

A exclusão reversível de blob pode ser usada somente para restaurar um blob individual, um instantâneo, um diretório (em um namespace hierárquico) ou uma versão. Para restaurar um contêiner e seu conteúdo, a exclusão reversível de contêiner também deve ser habilitada para a conta de armazenamento. A Microsoft recomenda habilitar a exclusão reversível de contêiner e o controle de versão de blob junto com a exclusão reversível de blob para garantir a proteção completa para dados de blob. Para obter mais informações, confira Visão geral de proteção de dados.

A exclusão reversível de blob não protege contra a exclusão de uma conta de armazenamento. Para proteger uma conta de armazenamento contra a exclusão, configure um bloqueio no recurso de conta de armazenamento. Para obter mais informações sobre como bloquear uma conta de armazenamento, confira Aplicar um bloqueio do Azure Resource Manager a uma conta de armazenamento.

Como as exclusões são tratadas quando a exclusão reversível está habilitada

Quando você ativa a exclusão reversível de blob, a exclusão de um blob marca esse blob como excluído de forma reversível. A exclusão não cria um snapshot. Quando o período de retenção expira, o blob excluído de maneira reversível será excluído permanentemente. Em contas que possuem um namespace hierárquico, a lista de controle de acesso de um blob não é afetada e permanece intacta se o blob for restaurado.

Se um blob tem snapshots, você não pode deletar o blob a menos que também apague os snapshots. Quando você exclui um blob e seus snapshots, tanto o blob quanto os snapshots são marcados como excluídos temporariamente. A exclusão não cria novos snapshots.

Você também pode excluir um ou mais instantâneos ativos sem excluir o blob de base. Nesse caso, o instantâneo é excluído de maneira reversível.

Se você excluir um diretório em uma conta que tenha o recurso de namespace hierárquico ativado, o diretório e todo o seu conteúdo são marcados como deletados suavemente. Você só pode acessar o diretório deletado de forma suave. Para acessar o conteúdo do diretório deletado pelo software, é necessário desaletar o diretório deletado pelo software.

Os objetos excluídos de modo reversível ficam invisíveis, a menos que sejam exibidos ou listados explicitamente. Para obter mais informações sobre como listar objetos excluídos de maneira reversível, confira Gerenciar e restaurar blobs excluídos de maneira reversível.

Como as substituições são tratadas quando a exclusão reversível está habilitada

Importante

Esta seção não se aplica a contas que têm o namespace hierárquico.

Chamar uma operação como Colocar blob, Colocar lista de bloqueio ou Copar blob substitui os dados em um blob. Quando a exclusão suave de blob está habilitada, a substituição de um blob cria automaticamente um instantâneo excluído temporariamente do estado do blob antes da operação de gravação. Quando o período de retenção expira, o instantâneo excluído de maneira reversível será excluído permanentemente. A operação que o sistema realiza para criar o snapshot não aparece nos logs de recursos do Azure Monitor ou nos logs do Análise de Armazenamento.

Snapshots com deleção suave são invisíveis, a menos que você exiba ou liste explicitamente objetos deletados de forma suave. Para obter mais informações sobre como listar objetos excluídos de maneira reversível, confira Gerenciar e restaurar blobs excluídos de maneira reversível.

Para proteger uma operação de cópia, você deve habilitar a exclusão temporária de blobs na conta de armazenamento de destino.

A exclusão reversível do blob não o protege contra operações para gravar metadados ou propriedades do blob. A exclusão não cria um snapshot de deleção suave quando os metadados ou propriedades de um blob são atualizados.

Para contas de armazenamento Premium, os instantâneos excluídos de modo reversível não contam para o limite por blob de 100 instantâneos.

Como restaurar objetos excluídos de maneira reversível

Você pode restaurar blobs excluídos de maneira reversível ou diretórios (em um namespace hierárquico) chamando a operação Restaurar blob dentro do período de retenção. A operação Restaurar blob restaura um blob e todos os instantâneos excluídos de maneira reversível associados a ele. Ele restaura quaisquer snapshots que você tenha excluído durante o período de retenção. Em contas que têm um namespace hierárquico, a lista de controle de acesso de um blob é restaurada junto com o blob.

Em contas que possuem namespace hierárquico, você também pode usar a operação Undelete Blob para restaurar um diretório deletado e todo o seu conteúdo. Se você renomear um diretório que contém blobs excluídos temporariamente, esses blobs excluídos temporariamente serão desconectados do diretório. Para restaurar esses blobs, você precisa reverter o nome do diretório para o original ou criar um diretório separado que use o nome original do diretório. Caso contrário, você receberá um erro ao tentar restaurar esses blobs excluídos temporariamente. Você também não pode restaurar um diretório ou um blob em um caminho de arquivo que já tenha um diretório ou blob com esse nome. Por exemplo, se você excluir a.txt (1) e fizer upload de um novo arquivo também chamado a.txt (2), você não poderá restaurar o a.txt (1) excluído temporariamente até que o arquivo ativo a.txt (2) seja excluído ou renomeado. Você não pode acessar o conteúdo de um diretório deletado suavemente até que o diretório seja removido.

Chamar Undelete Blob para um blob que não foi excluído temporariamente restaura todos os instantâneos excluídos temporariamente associados ao blob. Se o blob não tiver snapshots e não estiver excluído de forma reversível, chamar Undelete Blob não terá efeito.

Para promover um instantâneo excluído de maneira reversível ao blob de base, primeiro chame Restaurar blob no blob de base para restaurar o blob e seus instantâneos. Depois, copie o instantâneo desejado sobre o blob de base. Você também pode copiar o instantâneo para um novo blob.

Você não pode ler dados em um blob ou snapshot deletado suavemente até que o objeto seja restaurado.

Para obter mais informações sobre como restaurar objetos excluídos de maneira reversível, confira Gerenciar e restaurar blobs excluídos de maneira reversível.

Dica

Você pode usar uma tarefa de armazenamento para restaurar blobs em escala em várias contas de armazenamento com base em um conjunto de condições que você definir. Uma conta de armazenamento é um recurso disponível em Ações de Armazenamento do Azure; uma estrutura sem servidor que você pode usar para executar operações de dados comuns em milhões de objetos em várias contas de armazenamento. Para saber mais, confira o que são as Ações de Armazenamento do Azure?

Exclusão reversível e controle de versão de blob

Importante

Versionamento não é suportado para contas que possuem namespace hierárquico.

Se você ativar o versionamento de blobs e a exclusão temporária de blobs em uma conta de armazenamento, a substituição de um blob criará automaticamente uma nova versão anterior do blob que reflete o estado do blob antes da operação de gravação. A nova versão não é excluída de modo reversível e não é removida quando o período de retenção de exclusão reversível expira. Nenhum instantâneo excluído de maneira temporária é criado.

Se você ativar tanto o controle de versão de blobs quanto a exclusão reversível de blobs em uma conta de armazenamento, ao excluir um blob, a versão atual dele se tornará uma versão anterior, e deixará de haver uma versão atual. Nenhuma versão e nenhum instantâneo excluído de maneira temporária são criados. Todas as versões anteriores são mantidas até que você as exclua explicitamente, seja com uma operação de exclusão direta ou via uma política de gerenciamento do ciclo de vida.

Habilitar a exclusão temporária junto com o controle de versão protege as versões anteriores do blob e as versões atuais contra exclusão. Quando você ativa o soft delete, as versões permanecem não deletadas mesmo que o blob seja deletado. Se você eliminar uma versão, essa versão será excluída de forma suave. As versões com exclusão reversível são retidas até que o período de retenção da exclusão reversível expire. Após o término do período de retenção, a versão blob com deleção suave é deletada permanentemente.

Você pode usar a operação Restaurar Blob para restaurar versões excluídas de maneira temporária durante o período de retenção da exclusão temporária. A operação Undelete Blob sempre restaura todas as versões com exclusão temporária do blob. Não é possível restaurar apenas uma versão excluída de modo reversível.

Observação

Chamar a operação Undelete Blob em um blob excluído quando a versão está ativada restaura quaisquer versões ou snapshots deletados de forma suave, mas não restaura a versão atual. Para restaurar a versão atual, promova uma versão anterior copiando-a para a versão atual.

A Microsoft recomenda habilitar o controle de versão e a exclusão temporária de blob das suas contas de armazenamento para uma proteção de dados ideal. Para obter mais informações sobre como usar o controle de versão de blobs e a exclusão reversível juntos, confira Controle de versão e exclusão reversível de blobs.

Proteção de exclusão reversível de blob por operação

A seguinte tabela descreve o comportamento esperado para operações de exclusão e gravação quando a exclusão reversível de blob está habilitada, com ou sem o controle de versão de blob. Nas tabelas a seguir, Sem alteração significa que a operação se comporta da mesma forma, independentemente de a exclusão suave do blob estar ativada ou não.

Conta de armazenamento (sem namespace hierárquico)

Operações da API REST Exclusão reversível habilitada Exclusão reversível e controle de versão habilitada
Excluir conta de armazenamento Sem alteração. Você não pode recuperar containers e blobs da conta excluída. Sem alteração. Você não pode recuperar containers e blobs da conta excluída.
Excluir Contêiner Sem alteração. Você não consegue recuperar os blobs no contêiner deletado. Sem alteração. Você não consegue recuperar os blobs no contêiner deletado.
Excluir Blob Se usado para excluir um blob, esse blob será marcado como com exclusão reversível.

Se usado para excluir um instantâneo de blob, o instantâneo será marcado como excluído de maneira reversível.
Se usado para excluir um blob, a versão atual do blob se torna uma versão anterior e a versão atual é excluída. Nenhuma versão e nenhum instantâneo excluído de maneira temporária são criados.

Se usado para excluir uma versão de blob, a versão será marcada como excluída de maneira reversível.
Restaurar blob Restaura um blob e todos os instantâneos que foram excluídos dentro do período de retenção. Restaura um blob e todas as versões que foram excluídos dentro do período de retenção.
Colocar Blob
Colocar Lista de Blocos
Copiar Blob
Copiar blob da URL
Se chamado em um blob ativo, um instantâneo do estado do blob anterior à operação é gerado automaticamente.

Se chamado em um blob excluído de modo reversível, um instantâneo do estado anterior do blob será gerado somente se ele for substituído por um blob do mesmo tipo. Se o blob for de um tipo diferente, todos os dados existentes excluídos temporariamente serão excluídos de modo permanente.
Uma nova versão que captura o estado do blob antes da operação é gerada automaticamente.
Colocar Bloco Se usado para comprometer um bloco em um blob ativo, não haverá alteração.

Se usado para confirmar um bloco para um blob excluído de maneira reversível, um novo blob será criado e um instantâneo será gerado automaticamente para capturar o estado do blob excluído de maneira reversível.
Sem alteração.
Colocar Página
Colocar Página da URL
Sem alteração. Os dados do blob de páginas que são substituídos ou limpos usando essa operação não são salvos e não podem ser recuperados. Sem alteração. Os dados do blob de páginas que são substituídos ou limpos usando essa operação não são salvos e não podem ser recuperados.
Acrescentar Bloco
Acrescentar Bloco da URL
Sem alteração. Sem alteração.
Definir Propriedades do Blob Sem alteração. As propriedades de blob sobrescritas não são recuperáveis. Sem alteração. As propriedades de blob sobrescritas não são recuperáveis.
Definir Metadados de Blob Sem alteração. Metadados de blob sobrescritos não podem ser recuperados. Uma nova versão que captura o estado do blob antes da operação é gerada automaticamente.
Definir camada do Blob O blob de base é movido para a nova camada. Todos os instantâneos ativos ou excluídos de maneira reversível permanecem na camada original. Nenhum instantâneo excluído de maneira reversível é criado. O blob de base é movido para a nova camada. Todas as versões ativas ou excluídas de maneira reversível permanecem na camada original. Nenhuma nova versão é criada.

Conta de armazenamento (namespace hierárquico)

Operação de API REST Soft delete ativado
Excluir conta de armazenamento Sem alteração. Os contêineres e os blobs na conta excluída não são recuperáveis.
Sistema de arquivos - Excluir Sem alteração. Os blobs no contêiner excluído não são recuperáveis.
Excluir Contêiner Sem alteração. Você não consegue recuperar os blobs no contêiner deletado.
Caminho - excluir Um diretório ou um blob excluído temporariamente é criado. O objeto excluído temporariamente é excluído após o período de retenção.
Excluir Blob Um objeto excluído temporariamente é criado. O objeto excluído temporariamente é excluído após o período de retenção. Soft delete não é suportado para blobs que possuem snapshots.
Caminho - criar que renomeia um blob ou um diretório O blob de destino existente ou um diretório vazio é excluído temporariamente e substituído pela origem. O objeto excluído temporariamente é excluído após o período de retenção.
Definir a validade de blob que define uma data de validade em um blob existente Um blob excluído temporariamente não é criado. Um blob expirado não passa a ser um blob excluído temporariamente quando ele expira.

Suporte a recursos

O suporte para esse recurso pode ser afetado ao habilitar o Data Lake Storage Gen2, o protocolo NFS (Sistema de Arquivos de Rede) 3.0 ou o protocolo SFTP (Protocolo de Transferência de Arquivo SSH). Se você tiver habilitado um desses recursos, veja o Suporte a recursos do Armazenamento de Blobs nas contas do Armazenamento do Microsoft Azure para avaliar o suporte para esse recurso.

Não há suporte para exclusão reversível para blobs carregados usando APIs do Data Lake Storage em contas de armazenamento sem namespace hierárquico.

Preços e cobrança

Todos os dados excluídos temporariamente são cobrados com base na mesma taxa dos dados ativos. Você não é cobrado por dados que são deletados permanentemente após o término do período de retenção.

Ao ativar a exclusão suave, use um curto período de retenção para entender melhor como o recurso afeta sua conta. O período de retenção mínimo recomendado é de sete dias.

Ativar a exclusão suave para dados frequentemente sobrescritos pode resultar em aumento das cargas de capacidade de armazenamento e maior latência ao listar blobs. Você pode mitigar esse custo extra e latência armazenando os dados frequentemente sobrescritos em uma conta de armazenamento separada onde a exclusão suave esteja desativada.

Você não será cobrado pelas transações relacionadas à geração automática de instantâneos ou versões quando um blob for substituído ou excluído. Você será cobrado por chamadas à operação Undelete Blob na taxa de transação para operações de gravação.

Para obter mais informações sobre os preços para Armazenamento de Blobs, confira a página Preços para Armazenamento de Blobs.

Exclusão reversível de blob e discos de máquina virtual

A exclusão reversível de blob está disponível para discos não gerenciados Premium e Standard, que são blobs de páginas nos bastidores. A exclusão reversível pode ajudá-lo a recuperar dados excluídos ou substituídos somente pelas operações Excluir blob, Colocar blob, Colocar lista de blocos e Copiar blob.

Os dados substituídos por uma chamada a Put Page não são recuperáveis. Uma máquina virtual Azure escreve em um disco não gerenciado usando chamadas para Put Page, então usar soft delete para desfazer gravações em um disco não gerenciado a partir de uma VM Azure não é um cenário suportado.

Próximas etapas