Exclusão reversível para blobs
A exclusão reversível para blobs protege um blob individual, instantâneo ou versão de exclusões ou substituições acidentais, mantendo os dados excluídos no sistema por um período de tempo 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. Depois que o período de retenção expirar, o objeto será excluído permanentemente.
Configuração de proteção de dados recomendada
A exclusão reversível de blobs é parte de uma estratégia de proteção de dados abrangente para dados de blob. Para uma ótima proteção para dados de blob, a Microsoft recomenda habilitar todos os seguintes recursos de proteção de dados:
- Exclusão reversível de contêiner, para restaurar um contêiner que foi excluído. Para saber como habilitar a exclusão reversível de contêiner, confira Habilitar e gerenciar a exclusão reversível para contêineres.
- Controle de versão de blob, para preservar automaticamente as versões anteriores de um blob. Quando o controle de versão de blobs estiver habilitado, você poderá restaurar uma versão anterior de um blob para recuperar os dados, caso eles tenham sido modificados ou excluídos por engano. Para saber como habilitar o controle de versão de blobs, confira Habilitar e gerenciar o controle de versão de blobs.
- Exclusão reversível de blob, para restaurar um blob, um instantâneo ou uma versão que foi excluído. Para saber como habilitar a exclusão temporária de blob, confira Habilitar e gerenciar a exclusão temporária de blobs.
Para saber mais sobre as recomendações da Microsoft para proteção de dados, confira Visão geral da proteção de dados.
Cuidado
Depois que você habilitar o controle de versão do blob para uma conta de armazenamento, todas as operações de gravação em um blob nessa conta resultarão na criação de uma versão. Por esse motivo, a habilitação do controle de versão de blob poderá resultar em custos adicionais. 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:
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 controle de versão de blobs está disponível para o uso geral v2, blob de blocos e conta de armazenamento de blob. Atualmente, as contas de armazenamentos com um namespace hierárquico não são compatíveis.
A versão 2017-07-29 e superior da API REST do Armazenamento do Azure dá suporte à exclusão reversível 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 a exclusão reversível de blob está habilitada, a exclusão de um blob marca esse blob como excluído de maneira reversível. Nenhum instantâneo é criado. Quando o período de retenção expira, o blob excluído de maneira reversível será excluído permanentemente. Nas contas que têm um namespace hierárquico, a lista de controle de acesso de um blob não é afetada e permanecerá intacta se o blob for restaurado.
Se um blob tiver instantâneos, ele não poderá ser excluído, a menos que os instantâneos também sejam excluídos. Quando você exclui um blob e seus instantâneos, o blob e os instantâneos são marcados como excluídos de maneira reversível. Nenhum instantâneo novo é criado.
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 um diretório for excluído em uma conta que tenha o recurso de namespace hierárquico habilitado, o diretório e todo o seu conteúdo será marcado como excluído de modo reversível. Somente o diretório excluído de modo reversível pode ser acessado. Para acessar o conteúdo do diretório excluído de modo reversível, o diretório excluído desse modo precisa ser excluído primeiro.
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 reversível de blob está habilitada, a substituição de um blob cria automaticamente um instantâneo excluído de maneira reversível 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 executada pelo sistema para criar o instantâneo não aparece nos logs de recursos do Azure Monitor nem nos logs da Análise de Armazenamento.
Os instantâneos excluídos de maneira reversível ficam invisíveis, a menos que sejam explicitamente exibidos ou listados. 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, a exclusão reversível de blob deve ser habilitada para a 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. Nenhum instantâneo excluído de maneira reversível é criado quando os metadados ou as propriedades de um blob são atualizados.
A exclusão reversível do blob não oferece proteção contra substituição aos blobs na camada de arquivos. Se um blob na camada de arquivos for substituído por um novo blob em qualquer nível, o blob substituído será permanentemente excluído.
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. Todos os instantâneos excluídos durante o período de retenção serão restaurados. Em contas que têm um namespace hierárquico, a lista de controle de acesso de um blob é restaurada junto com o blob.
Nas contas que têm um namespace hierárquico, a operação Cancelar exclusão do blob também pode ser usada para restaurar um diretório com exclusão reversível 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. Se quiser restaurar esses blobs, você terá que reverter o nome do diretório para o nome original ou criar um diretório separado que use o nome do diretório original. 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 carregar um novo arquivo também chamado a.txt (2), só poderá restaurar o arquivo a.txt (1) excluído temporariamente quando o a.txt (2) ativo for excluído ou renomeado. Você não pode acessar o conteúdo de um diretório excluído temporariamente até que o diretório seja restaurado.
A chamada de Undelete Blob em um blob que não tenha sido excluído de modo reversível vai restaurar os instantâneos excluídos de modo reversível associados ao blob. Se o blob não tiver instantâneos e não tiver sido excluído de modo reversível, Undelete Blob não entrará em vigor.
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.
Os dados em um blob ou instantâneo excluídos de modo reversível não podem ser lidos 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, consulte O que são as Ações de Armazenamento do Azure?.
Exclusão reversível e controle de versão de blob
Importante
O controle de versão não é compatível com contas que têm um namespace hierárquico.
Se o controle de versão de blob e a exclusão temporária de blob estiverem habilitados em uma conta de armazenamento, a substituição de um blob criará automaticamente uma nova versão anterior que refletirá 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 o controle de versão de blob e a exclusão temporária de blob estiverem habilitados para uma conta de armazenamento, quando você excluir um blob, a versão atual desse blob se tornará uma versão anterior e não haverá mais 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 retidas até serem excluídas explicitamente, seja com uma operação de exclusão direta ou por meio de uma política de gerenciamento de 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 a exclusão temporária está habilitada, a exclusão explícita de uma versão anterior cria uma versão de exclusão temporária que é retida até que o período de retenção da exclusão temporária tenha decorrido. Depois que o período de retenção da exclusão temporária tiver decorrido, as versões de blob excluídas temporariamente serão excluídas 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 Restaurar Blob em um blob excluído quando o controle de versão está habilitado restaura todas as versões ou instantâneos excluídos de maneira temporária, 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 reversível de blob para 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.
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 | Nenhuma alteração. Os contêineres e os blobs na conta excluída não são recuperáveis. | Nenhuma alteração. Os contêineres e os blobs na conta excluída não são recuperáveis. |
Delete Container | Nenhuma alteração. Os blobs no contêiner excluído não são recuperáveis. | Nenhuma alteração. Os blobs no contêiner excluído não são recuperáveis. |
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 nova versão é criada e nenhum instantâneo excluído de maneira reversível será criado. 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. |
Put Blob Put Block List 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. |
Put Block | 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. |
Nenhuma alteração. |
Colocar Página Colocar Página da URL |
Nenhuma 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. | Nenhuma 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 |
Nenhuma alteração. | Nenhuma alteração. |
Set Blob Properties | Nenhuma alteração. As propriedades de blob sobrescritas não são recuperáveis. | Nenhuma alteração. As propriedades de blob sobrescritas não são recuperáveis. |
Set Blob Metadata | Nenhuma 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 | Exclusão reversível habilitada |
---|---|
Excluir conta de armazenamento | Nenhuma alteração. Os contêineres e os blobs na conta excluída não são recuperáveis. |
Sistema de arquivos - Excluir | Nenhuma alteração. Os blobs no contêiner excluído não são recuperáveis. |
Delete Container | Nenhuma alteração. Os blobs no contêiner excluído não são recuperáveis. |
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. A exclusão reversível não é compatível com blobs com instantâneos nem com instantâneos. |
Caminho - criar que renomeia um blob ou um diretório | O blob de destino existente ou o diretório vazio será excluído temporariamente, e a origem o substituirá. 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 qualquer um desses recursos, consulte o Suporte a recursos de Armazenamento de Blobs nas contas de Armazenamento do 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 será cobrado pelos dados excluídos permanentemente após o período de retenção.
Quando você ativa a exclusão reversível, a Microsoft recomenda usar um período de retenção curto para entender melhor como o recurso afeta a sua fatura. O período de retenção mínimo recomendado é de sete dias.
Habilitar a exclusão reversível para dados frequentemente substituídos pode resultar em encargos de capacidade de armazenamento maiores e maior latência ao fazer listagem de blobs. Você pode reduzir esse custo e latência adicionais armazenando os dados frequentemente substituídos em uma conta de armazenamento separada sem a exclusão reversível.
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 do Azure grava em um disco não gerenciado usando chamadas Put Page. Portanto, não há suporte para o cenário em que a exclusão reversível desfaz gravações em um disco não gerenciado de uma VM do Azure.