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​
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:
| Aspecto | Blob Storage | Azure Files |
|---|---|---|
| Snapshots | Por blob individual | Por file share inteiro |
| Soft Delete | Por blob e por container (separados) | Por file share |
| Versioning | Automático por blob | Não existe (snapshots são manuais ou via Backup) |
| Soft Delete de conteúdo | Sim (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.
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:
- O share entra em estado soft-deleted (não é removido fisicamente)
- Fica invisÃvel nas listagens normais de shares
- Todos os snapshots do share são preservados junto com o share soft-deleted
- Pode ser restaurado durante o perÃodo de retenção configurado (1 a 365 dias)
- 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​
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​
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:
- Usuário deleta acidentalmente
relatorio-final.xlsxdo share - Administrador ou o próprio usuário (via Versões Anteriores no Windows) localiza o snapshot anterior à exclusão
- Copia o arquivo do snapshot de volta para o share ativo
- 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:
- No Windows Explorer, navegue até o share montado
- Clique com o botão direito na pasta ou arquivo
- Selecione "Propriedades"
- Clique na aba "Versões Anteriores"
- Selecione o snapshot desejado
- 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ção | Role mÃnima |
|---|---|
| Criar snapshot | Storage Account Contributor |
| Listar snapshots | Storage Account Reader |
| Deletar snapshot | Storage Account Contributor |
| Restaurar arquivo de snapshot | Storage Account Contributor + acesso ao share |
Para gerenciar Soft Delete:
| Operação | Role mÃnima |
|---|---|
| Habilitar/desabilitar Soft Delete | Storage Account Contributor |
| Listar shares soft-deleted | Storage Account Reader |
| Restaurar share soft-deleted | Storage 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
CanNotDeletelock 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
DeleteSharee 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ção | Melhor escolha | Motivo |
|---|---|---|
| Antes de deployment ou mudança crÃtica | Snapshot manual | Controle preciso do momento |
| Proteção contÃnua de produção | Azure Backup | Automação, retenção gerenciada, restauração simplificada |
| Compartilhamento de desenvolvimento | Snapshot manual ocasional | Baixo custo, controle direto |
| Conformidade com retenção de 1 ano | Azure Backup | Gerencia retenção longa automaticamente |
| Recuperação rápida de arquivo por usuário | Versões Anteriores (Windows) | Usuário recupera sem intervenção do admin |
| Recuperação em ambientes Linux | Snapshot via CLI + AzCopy | Sem suporte a Versões Anteriores nativamente |
8.2 PerÃodo de retenção do Soft Delete​
| Situação | PerÃodo recomendado |
|---|---|
| File shares de desenvolvimento | 7 dias |
| File shares de produção | 14 a 30 dias |
| Shares com dados regulatórios | 30 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ário | Ferramenta correta | Motivo |
|---|---|---|
| Arquivo deletado de dentro do share | Snapshot anterior à deleção | Soft Delete não protege arquivos individuais |
| File share inteiro deletado | Soft Delete | Restaura o share com conteúdo e snapshots |
| Arquivo corrompido por edição errada | Snapshot anterior à edição | Permite recuperar versão anterior |
| Share corrompido em massa (ransomware) | Snapshot + Soft Delete | Snapshot recupera o conteúdo; Soft Delete protege o share |
| Diretório deletado acidentalmente | Snapshot + cópia manual | Restaurar 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​
| Erro | Por que acontece | Como evitar |
|---|---|---|
| Arquivo deletado sem snapshot anterior | Snapshot não existia ou era anterior à última modificação importante | Criar snapshots com frequência adequada à volatilidade dos dados |
| Versões Anteriores não aparece no Windows | Share montado com chave de acesso, não com identidade AD | Configurar autenticação baseada em identidade (AD DS, Azure AD DS) |
| Snapshot individual deletado e irrecuperável | Soft Delete não protege snapshots individuais | Restringir quem pode deletar snapshots; usar Azure Backup |
| Share soft-deleted não pode ser restaurado | PerÃodo de retenção expirou | Aumentar perÃodo; monitorar e agir dentro do prazo |
| Custo inesperado com share soft-deleted | Share Premium continua cobrado pela capacidade provisionada | Considerar isso ao definir o perÃodo de retenção |
| Confundir soft delete de Files com soft delete de Blob | São serviços diferentes com configurações independentes | Configurar separadamente em Data Protection para cada serviço |
| Limite de 200 snapshots atingido | Snapshots criados sem exclusão dos antigos | Implementar polÃtica de exclusão automática de snapshots antigos |
| Restauração via AzCopy sobrescreve dados mais recentes | Operação de cópia do snapshot sobre o share ativo | Testar 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​
| Aspecto | Limite |
|---|---|
| Máximo de snapshots por file share | 200 |
| PerÃodo de retenção do Soft Delete | 1 a 365 dias |
| Tamanho máximo de um snapshot | Limitado pelo tamanho máximo do share |
| Snapshots de shares Premium | Suportados |
| Snapshots de shares NFS | Não suportados (apenas SMB) |
| Restauração de share soft-deleted com novo nome | Nã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.