Pular para o conteúdo principal

Fundamentação Teórica: Configure Snapshots and Soft Delete for Azure Files


1. Intuição Inicial​

Imagine que você trabalha num escritório onde todos editam documentos numa pasta de rede compartilhada. Um colega acidentalmente deleta uma pasta inteira com contratos importantes. Outro sobrescreve um relatório financeiro com a versão errada. Sem proteção, esses dados se perdem permanentemente.

Snapshots em Azure Files são como fotografias do estado completo do file share em um momento específico. Se algo der errado, você pode voltar à fotografia e recuperar o que foi perdido, seja um arquivo individual ou o share inteiro.

Soft Delete em Azure Files é a lixeira do file share: quando um share é deletado, ele não desaparece imediatamente. Fica preservado por um período configurável, durante o qual pode ser restaurado completamente.

Enquanto snapshots protegem contra modificações e exclusões de conteúdo, soft delete protege contra a exclusão do próprio file share.


2. Contexto​

2.1 Posição na estratégia de proteção do Azure Files​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

2.2 Diferença fundamental entre Azure Files e Blob Storage​

É importante não confundir o comportamento de snapshots e soft delete entre os dois serviços, pois eles têm comportamentos distintos:

AspectoBlob StorageAzure Files
SnapshotsPor blob individualPor file share inteiro
Soft DeletePor blob e por container (separados)Por file share
VersioningAutomático por blobNão existe (snapshots são manuais ou via Backup)
Soft Delete de conteúdoSim (arquivo individual)Não (apenas o share como um todo)

Ponto crítico: No Azure Files, não existe soft delete de arquivo individual. Se um arquivo dentro de um share for deletado e você não tiver um snapshot anterior ao momento da exclusão, o arquivo está perdido.


3. Construção dos Conceitos​

3.1 Snapshots de file share​

Um snapshot de file share é uma cópia somente leitura e incremental do estado completo do file share em um momento específico.

Incremental significa que o snapshot não duplica todos os dados a cada vez. Ele armazena apenas as diferenças em relação ao snapshot anterior (ou ao estado atual). Se você tem 100 GB no share e faz um snapshot após adicionar 1 GB, o snapshot ocupa aproximadamente 1 GB (mais os metadados), não 101 GB.

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

Características dos snapshots:

  • São somente leitura: você não pode modificar o conteúdo de um snapshot
  • São independentes do share ativo: deletar arquivos do share ativo não afeta os snapshots
  • Podem ser acessados diretamente para leitura sem restauração
  • Podem ser usados para restaurar arquivos individuais, diretórios ou o share inteiro
  • Permanecem até serem explicitamente deletados (ou até o share ser deletado)
  • Máximo de 200 snapshots por file share

3.2 Como acessar o conteúdo de um snapshot​

Snapshots de Azure Files são acessíveis de duas formas:

Via Windows (Versões Anteriores): Quando o share está montado em um cliente Windows com autenticação AD, o usuário pode clicar com o botão direito em qualquer arquivo ou pasta e selecionar "Propriedades" > aba "Versões Anteriores". O Windows exibe todos os snapshots como versões anteriores navegáveis, sem intervenção do administrador.

Esta é uma funcionalidade extremamente poderosa: o próprio usuário pode recuperar arquivos deletados acidentalmente sem abrir chamados de suporte.

Via path direto (Linux e CLI): Snapshots são acessíveis via path especial no share montado:

# Linux: navegar no snapshot
ls /mnt/myshare/.snapshot/2025-01-15T10:00:00.0000000Z/

# Windows: via UNC path do snapshot
\\myaccount.file.core.windows.net\myshare\{snapshot_datetime}\

3.3 Soft Delete de file share​

Quando Soft Delete está habilitado e um file share é deletado:

  1. O share entra em estado soft-deleted (não é removido fisicamente)
  2. Fica invisível nas listagens normais de shares
  3. Todos os snapshots do share são preservados junto com o share soft-deleted
  4. Pode ser restaurado durante o período de retenção configurado (1 a 365 dias)
  5. Após o período, é permanentemente removido

Ponto fundamental: Soft Delete em Azure Files protege o file share como um todo, incluindo todo o seu conteúdo e snapshots. Não existe soft delete de arquivo individual dentro do share.


3.4 A relação entre Soft Delete e Snapshots​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

Comportamento crítico: Soft Delete protege o share, não os snapshots individualmente. Se você deletar um snapshot específico (não o share inteiro), esse snapshot é removido permanentemente, sem possibilidade de recuperação via soft delete.


4. Visão Estrutural​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

5. Funcionamento na Prática​

5.1 Criando e usando snapshots​

Antes de criar um snapshot, entenda o que ele captura:

Um snapshot de file share captura o estado de todos os arquivos e diretórios do share no momento da criação. Ele não requer que o share esteja desmontado ou que clientes desconectem. A operação é consistente no nível do share, não no nível de arquivo individual.

Fluxo de recuperação de um arquivo deletado:

  1. Usuário deleta acidentalmente relatorio-final.xlsx do share
  2. Administrador ou o próprio usuário (via Versões Anteriores no Windows) localiza o snapshot anterior à exclusão
  3. Copia o arquivo do snapshot de volta para o share ativo
  4. Arquivo está restaurado sem impacto no restante do share

5.2 Restaurando arquivos via Versões Anteriores no Windows​

Esta é a forma mais comum e mais importante de recuperação para usuários finais:

  1. No Windows Explorer, navegue até o share montado
  2. Clique com o botão direito na pasta ou arquivo
  3. Selecione "Propriedades"
  4. Clique na aba "Versões Anteriores"
  5. Selecione o snapshot desejado
  6. Clique em "Abrir" para visualizar, "Copiar" para recuperar para outro local, ou "Restaurar" para sobrescrever

Requisito para Versões Anteriores: O share deve estar montado com autenticação baseada em identidade (Azure AD DS, AD DS ou Azure AD Kerberos). Shares montados apenas com chave de acesso não mostram Versões Anteriores no Windows Explorer.


5.3 Restaurando o share inteiro de um snapshot​

A restauração de um share inteiro copia o conteúdo de um snapshot sobre o share ativo. Isso sobrescreve o conteúdo atual do share com o estado do snapshot. Esta operação é útil quando o share foi corrompido em massa ou quando muitos arquivos foram deletados.

Não existe operação de "rollback" nativo. A restauração de um snapshot para o share inteiro é feita via AzCopy ou via cópia dos arquivos do snapshot para o share ativo. O Azure não tem uma operação de "restore share to snapshot" em um único clique (diferente do Azure Backup, que oferece isso).

Para restaurar via AzCopy:

# Copiar todos os arquivos de um snapshot para o share ativo
azcopy copy \
'https://myaccount.file.core.windows.net/myshare?sharesnapshot=2025-01-15T08:00:00Z&<SAS-TOKEN>' \
'https://myaccount.file.core.windows.net/myshare?<SAS-TOKEN>' \
--recursive

6. Formas de Implementação​

6.1 Portal Azure​

Habilitando Soft Delete:

Storage Account > Data Protection > Enable soft delete for file shares

Configure o período de retenção (1 a 365 dias). A configuração é aplicada imediatamente.

Criando um snapshot manualmente:

Storage Account > File shares > [share] > Snapshots > + Add snapshot

Adicione uma mensagem descritiva opcional (ex: "pre-deployment-2025-01-15").

Listando e gerenciando snapshots:

Storage Account > File shares > [share] > Snapshots

A lista mostra todos os snapshots com data, hora e tamanho incremental. Você pode deletar snapshots individuais ou navegar pelo conteúdo clicando em um snapshot.

Restaurando arquivo de snapshot via portal:

Storage Account > File shares > [share] > Snapshots > [snapshot] > Browse

Navegue pela estrutura de diretórios do snapshot, selecione um arquivo e clique em "Restore".

Listando e restaurando file shares soft-deleted:

Storage Account > File shares > (marcar "Show deleted shares")

Shares soft-deleted aparecem com status "Deleted". Selecione e clique em "Undelete".


6.2 Azure CLI​

Habilitando Soft Delete:

az storage account file-service-properties update \
--account-name myaccount \
--resource-group myRG \
--enable-delete-retention true \
--delete-retention-days 14

Verificando configuração:

az storage account file-service-properties show \
--account-name myaccount \
--resource-group myRG \
--query "shareDeleteRetentionPolicy"

Criando snapshot:

az storage share snapshot \
--account-name myaccount \
--name projetos \
--account-key <key>

O comando retorna o timestamp do snapshot criado.

Listando snapshots:

az storage share list \
--account-name myaccount \
--include-snapshot \
--account-key <key> \
--output table

Visualizando conteúdo de um snapshot:

az storage file list \
--account-name myaccount \
--share-name projetos \
--snapshot "2025-01-15T08:00:00.0000000Z" \
--account-key <key>

Restaurando arquivo individual de snapshot:

az storage file copy start \
--account-name myaccount \
--source-share projetos \
--source-path "relatorios/relatorio-final.xlsx" \
--source-snapshot "2025-01-15T08:00:00.0000000Z" \
--destination-share projetos \
--destination-path "relatorios/relatorio-final-restaurado.xlsx" \
--account-key <key>

Deletando snapshot:

az storage share delete \
--account-name myaccount \
--name projetos \
--snapshot "2025-01-15T08:00:00.0000000Z" \
--account-key <key>

Listando file shares soft-deleted:

az storage share list \
--account-name myaccount \
--include-deleted \
--account-key <key> \
--output table

Restaurando file share soft-deleted:

az storage share undelete \
--account-name myaccount \
--name financeiro \
--deleted-version "01D8A3F..." \
--account-key <key>

O --deleted-version é obtido na listagem de shares deletados.


6.3 Azure PowerShell​

$ctx = New-AzStorageContext `
-StorageAccountName "myaccount" `
-StorageAccountKey "<key>"

# Criar snapshot
$snapshot = New-AzStorageShareSnapshot `
-ShareName "projetos" `
-Context $ctx

# Listar snapshots
Get-AzStorageShare `
-ShareName "projetos" `
-Context $ctx `
-SnapshotTime $snapshot.SnapshotTime

# Listar shares soft-deleted
Get-AzStorageShare `
-Context $ctx `
-IncludeDeleted

# Restaurar share soft-deleted
Restore-AzStorageShareDeletedShare `
-Name "financeiro" `
-DeletedShareVersion "01D8A3F..." `
-Context $ctx

6.4 Bicep: configurando Soft Delete​

resource fileServiceProperties 'Microsoft.Storage/storageAccounts/fileServices@2023-01-01' = {
name: '${storageAccount.name}/default'
properties: {
shareDeleteRetentionPolicy: {
enabled: true
days: 14
}
}
}

6.5 Automatizando snapshots com Azure Backup​

A forma mais recomendada de gerenciar snapshots em produção é via Azure Backup para Azure Files:

# Habilitar proteção com Azure Backup
az backup protection enable-for-azurefileshare \
--vault-name myRecoveryVault \
--resource-group myRG \
--storage-account myaccount \
--azure-file-share projetos \
--policy-name DailyFileShareBackup

O Azure Backup:

  • Cria snapshots automaticamente no horário agendado
  • Gerencia a retenção e exclusão de snapshots antigos
  • Oferece restauração com interface simplificada (arquivo individual ou share completo)
  • Mantém o estado de backup fora da Storage Account (proteção adicional)

7. Controle e Segurança​

7.1 Permissões necessárias​

Para gerenciar snapshots:

OperaçãoRole mínima
Criar snapshotStorage Account Contributor
Listar snapshotsStorage Account Reader
Deletar snapshotStorage Account Contributor
Restaurar arquivo de snapshotStorage Account Contributor + acesso ao share

Para gerenciar Soft Delete:

OperaçãoRole mínima
Habilitar/desabilitar Soft DeleteStorage Account Contributor
Listar shares soft-deletedStorage Account Reader
Restaurar share soft-deletedStorage Account Contributor

Observação de segurança: Snapshots não são protegidos por soft delete quando deletados individualmente. Um usuário com permissão Storage Account Contributor pode deletar todos os snapshots permanentemente. Para proteção adicional, use Azure Backup, que armazena o estado de backup fora do controle direto da Storage Account.


7.2 Proteção contra deleção de snapshots​

Como snapshots deletados individualmente são permanentemente removidos, considere:

  • Azure RBAC granular: Restrinja quem pode deletar snapshots ao mínimo necessário.
  • Azure Backup: O backup gerenciado pelo Azure Backup não pode ser deletado diretamente via operações de storage. Requer acesso ao Recovery Services Vault.
  • Resource Locks: Um CanNotDelete lock na Storage Account impede deleção acidental da conta, mas não impede deleção de snapshots via operações de storage.
  • Audit Logs: Configure diagnósticos para registrar operações DeleteShare e operações de snapshot.

7.3 Soft Delete e file shares Premium​

Soft Delete está disponível tanto para file shares Standard quanto Premium. O comportamento é idêntico. A diferença está apenas no custo: shares Premium são cobrados por capacidade provisionada, então um share soft-deleted continua sendo cobrado pela capacidade provisionada durante o período de retenção.


8. Tomada de Decisão​

8.1 Snapshots manuais vs Azure Backup​

SituaçãoMelhor escolhaMotivo
Antes de deployment ou mudança críticaSnapshot manualControle preciso do momento
Proteção contínua de produçãoAzure BackupAutomação, retenção gerenciada, restauração simplificada
Compartilhamento de desenvolvimentoSnapshot manual ocasionalBaixo custo, controle direto
Conformidade com retenção de 1 anoAzure BackupGerencia retenção longa automaticamente
Recuperação rápida de arquivo por usuárioVersões Anteriores (Windows)Usuário recupera sem intervenção do admin
Recuperação em ambientes LinuxSnapshot via CLI + AzCopySem suporte a Versões Anteriores nativamente

8.2 Período de retenção do Soft Delete​

SituaçãoPeríodo recomendado
File shares de desenvolvimento7 dias
File shares de produção14 a 30 dias
Shares com dados regulatórios30 dias (mínimo)
Shares de alto custo (Premium, grande volume)7 a 14 dias (equilíbrio custo x segurança)

8.3 Snapshots vs Soft Delete: o que cada um resolve​

CenárioFerramenta corretaMotivo
Arquivo deletado de dentro do shareSnapshot anterior à deleçãoSoft Delete não protege arquivos individuais
File share inteiro deletadoSoft DeleteRestaura o share com conteúdo e snapshots
Arquivo corrompido por edição erradaSnapshot anterior à ediçãoPermite recuperar versão anterior
Share corrompido em massa (ransomware)Snapshot + Soft DeleteSnapshot recupera o conteúdo; Soft Delete protege o share
Diretório deletado acidentalmenteSnapshot + cópia manualRestaurar o diretório do snapshot

9. Boas Práticas​

  • Habilite Soft Delete imediatamente ao criar qualquer file share de produção. O risco de deleção acidental do share é real e o custo de habilitação é mínimo.
  • Configure snapshots diários via Azure Backup para file shares de produção. Snapshots manuais são propensos a lapsos.
  • Configure snapshots mais frequentes (a cada 4-6 horas) para shares com dados críticos de alta volatilidade via scripts agendados ou Azure Automation.
  • Mantenha snapshots por pelo menos 7 dias para cobrir o período em que exclusões acidentais geralmente são detectadas.
  • Eduque usuários sobre o recurso de Versões Anteriores no Windows. A maioria dos usuários pode recuperar seus próprios arquivos sem intervenção de TI.
  • Combine snapshots com Soft Delete: Sem snapshots, o Soft Delete protege apenas a estrutura do share, não o conteúdo que foi modificado. Sem Soft Delete, os snapshots podem ser perdidos se o share for deletado.
  • Limite o número de snapshots monitorando o consumo e deletando snapshots antigos via lifecycle automatizado.
  • Não confie apenas em snapshots para conformidade de longo prazo. Use Azure Backup com políticas de retenção para requisitos regulatórios (LGPD, GDPR, etc.).

10. Erros Comuns​

ErroPor que aconteceComo evitar
Arquivo deletado sem snapshot anteriorSnapshot não existia ou era anterior à última modificação importanteCriar snapshots com frequência adequada à volatilidade dos dados
Versões Anteriores não aparece no WindowsShare montado com chave de acesso, não com identidade ADConfigurar autenticação baseada em identidade (AD DS, Azure AD DS)
Snapshot individual deletado e irrecuperávelSoft Delete não protege snapshots individuaisRestringir quem pode deletar snapshots; usar Azure Backup
Share soft-deleted não pode ser restauradoPeríodo de retenção expirouAumentar período; monitorar e agir dentro do prazo
Custo inesperado com share soft-deletedShare Premium continua cobrado pela capacidade provisionadaConsiderar isso ao definir o período de retenção
Confundir soft delete de Files com soft delete de BlobSão serviços diferentes com configurações independentesConfigurar separadamente em Data Protection para cada serviço
Limite de 200 snapshots atingidoSnapshots criados sem exclusão dos antigosImplementar política de exclusão automática de snapshots antigos
Restauração via AzCopy sobrescreve dados mais recentesOperação de cópia do snapshot sobre o share ativoTestar em ambiente não-produção; confirmar snapshot correto antes

11. Operação e Manutenção​

11.1 Monitorando snapshots​

# Verificar número de snapshots e tamanho
az storage share list \
--account-name myaccount \
--include-snapshot \
--account-key <key> \
--query "[?snapshot!=null].{Share:name, Snapshot:snapshot, Quota:properties.quota}" \
--output table

Configure um alerta quando o número de snapshots se aproximar de 200:

No Azure Monitor, monitore a métrica FileShareSnapshotCount por share.


11.2 Automatizando exclusão de snapshots antigos​

#!/bin/bash
# Deletar snapshots com mais de 30 dias
CUTOFF_DATE=$(date -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ)

az storage share list \
--account-name myaccount \
--include-snapshot \
--account-key <key> \
--query "[?snapshot!=null && snapshot<'$CUTOFF_DATE'].snapshot" \
--output tsv | while read SNAPSHOT; do
az storage share delete \
--account-name myaccount \
--name myshare \
--snapshot "$SNAPSHOT" \
--account-key <key>
echo "Deleted snapshot: $SNAPSHOT"
done

11.3 Limites importantes​

AspectoLimite
Máximo de snapshots por file share200
Período de retenção do Soft Delete1 a 365 dias
Tamanho máximo de um snapshotLimitado pelo tamanho máximo do share
Snapshots de shares PremiumSuportados
Snapshots de shares NFSNão suportados (apenas SMB)
Restauração de share soft-deleted com novo nomeNão possível; deve usar o nome original

Restrição importante: Snapshots NFS não são suportados. Se você usa Azure Files com protocolo NFS, snapshots e soft delete do share não estão disponíveis. Use Azure Backup ou outra estratégia de proteção.


12. Integração e Automação​

12.1 Azure Automation para snapshots agendados​

# Runbook PowerShell para snapshot agendado
param(
[string]$StorageAccountName,
[string]$ShareName,
[string]$ResourceGroupName
)

# Autenticar via Managed Identity
Connect-AzAccount -Identity

$ctx = New-AzStorageContext `
-StorageAccountName $StorageAccountName `
-UseConnectedAccount

# Criar snapshot
$snapshot = New-AzStorageShareSnapshot `
-ShareName $ShareName `
-Context $ctx `
-Metadata @{"CreatedBy" = "Automation"; "Purpose" = "DailyBackup"}

Write-Output "Snapshot criado: $($snapshot.SnapshotTime)"

# Deletar snapshots com mais de 30 dias
$cutoff = (Get-Date).AddDays(-30)
Get-AzStorageShare -ShareName $ShareName -Context $ctx |
Where-Object { $_.SnapshotTime -ne $null -and $_.SnapshotTime -lt $cutoff } |
ForEach-Object {
Remove-AzStorageShare -Name $ShareName -SnapshotTime $_.SnapshotTime -Context $ctx -Force
Write-Output "Snapshot deletado: $($_.SnapshotTime)"
}

12.2 Azure Backup: configuração completa​

# 1. Criar Recovery Services Vault
az backup vault create \
--resource-group myRG \
--name myRecoveryVault \
--location eastus

# 2. Criar política de backup para file shares (diário, retenção de 30 dias)
az backup policy create \
--resource-group myRG \
--vault-name myRecoveryVault \
--name DailyFilePolicy \
--backup-management-type AzureStorage \
--policy '{
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Daily",
"scheduleRunTimes": ["2025-01-01T02:00:00Z"]
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"dailySchedule": {
"retentionTimes": ["2025-01-01T02:00:00Z"],
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
}
}'

# 3. Habilitar proteção para o file share
az backup protection enable-for-azurefileshare \
--vault-name myRecoveryVault \
--resource-group myRG \
--storage-account myaccount \
--azure-file-share projetos \
--policy-name DailyFilePolicy

13. Resumo Final​

Conceitos essenciais:

  • Snapshots são cópias somente leitura e incrementais do estado completo de um file share em um momento específico. Permitem recuperar arquivos individuais, diretórios ou o share inteiro.
  • Soft Delete de file share é uma lixeira para o share como um todo. Quando um share é deletado, permanece recuperável pelo período de retenção configurado, com todo o seu conteúdo e snapshots.
  • No Azure Files, não existe soft delete de arquivo individual. Apenas snapshots protegem contra deleção de conteúdo dentro do share.

Diferenças críticas:

  • Snapshot vs Soft Delete: Snapshot protege o conteúdo do share (arquivos e pastas). Soft Delete protege a existência do share em si. São complementares.
  • Deletar snapshot individualmente vs deletar o share: Deleting um snapshot individualmente é permanente (sem soft delete). Deletar o share com soft delete ativo preserva o share e todos os seus snapshots.
  • Azure Files vs Blob Storage: Blob tem soft delete por arquivo individual e por container separadamente. Azure Files tem snapshot por share e soft delete apenas por share (sem nível de arquivo).
  • Versões Anteriores no Windows: Funciona apenas com autenticação baseada em identidade (AD DS, Azure AD DS, Azure AD Kerberos), não com chave de acesso.
  • NFS e snapshots: File shares com protocolo NFS não suportam snapshots nem soft delete.

O que precisa ser lembrado:

  • Máximo de 200 snapshots por file share.
  • Soft Delete só protege o share como um todo; arquivos deletados do share precisam de snapshots para serem recuperados.
  • Snapshots são incrementais: armazenam apenas as diferenças, não cópias completas.
  • O Azure Backup é a forma recomendada para snapshots automáticos em produção, pois gerencia retenção e oferece restauração simplificada.
  • Soft Delete deve ser configurado antes de qualquer deleção; não retroage.
  • Restaurar um share soft-deleted o recria com o mesmo nome original; não é possível restaurar com nome diferente.
  • Protocolo NFS não suporta snapshots nem soft delete de file share.