Azure Files é um serviço de armazenamento de arquivos em nuvem totalmente gerenciado que fornece armazenamento de arquivos compartilhados acessível via protocolos padrão SMB (Server Message Block) e NFS (Network File System). Embora o protocolo principal utilizado seja o SMB, as compartilhamentos de arquivos NFS do Azure não são suportados para Windows (de acordo com a docs). Ele permite criar compartilhamentos de arquivos em rede altamente disponíveis que podem ser acessados simultaneamente por várias máquinas virtuais (VMs) ou sistemas locais, permitindo o compartilhamento de arquivos sem interrupções entre ambientes.
Access Tiers
Transaction Optimized: Otimizado para operações com alta carga de transações.
Hot: Equilibrado entre transações e armazenamento.
Cool: Custo-efetivo para armazenamento.
Premium: Armazenamento de arquivos de alto desempenho otimizado para cargas de trabalho com baixa latência e IOPS intensivos.
Backups
Daily backup: Um ponto de backup é criado a cada dia em um horário indicado (por exemplo, 19.30 UTC) e armazenado de 1 a 200 dias.
Weekly backup: Um ponto de backup é criado a cada semana em um dia e horário indicados (domingo às 19.30) e armazenado de 1 a 200 semanas.
Monthly backup: Um ponto de backup é criado a cada mês em um dia e horário indicados (por exemplo, primeiro domingo às 19.30) e armazenado de 1 a 120 meses.
Yearly backup: Um ponto de backup é criado a cada ano em um dia e horário indicados (por exemplo, primeiro domingo de janeiro às 19.30) e armazenado de 1 a 10 anos.
Também é possível realizar backups manuais e snapshots a qualquer momento. Backups e snapshots são, na verdade, a mesma coisa neste contexto.
Supported Authentications via SMB
On-premises AD DS Authentication: Usa credenciais do Active Directory local sincronizadas com o Microsoft Entra ID para acesso baseado em identidade. Requer conectividade de rede com o AD DS local.
Microsoft Entra Domain Services Authentication: Aproveita os Serviços de Domínio do Microsoft Entra (AD baseado em nuvem) para fornecer acesso usando credenciais do Microsoft Entra.
Microsoft Entra Kerberos for Hybrid Identities: Permite que usuários do Microsoft Entra autentiquem compartilhamentos de arquivos do Azure pela internet usando Kerberos. Suporta VMs unidas ao Microsoft Entra híbrido ou unidas ao Microsoft Entra sem exigir conectividade com controladores de domínio locais. Mas não suporta identidades apenas em nuvem.
AD Kerberos Authentication for Linux Clients: Permite que clientes Linux usem Kerberos para autenticação SMB via AD DS local ou Serviços de Domínio do Microsoft Entra.
Enumeration
# Get storage accountsazstorageaccountlist#Get the account name from here# List file sharesazstoragesharelist--account-name<name>azstorageshare-rmlist--storage-account<name># To see the deleted ones too --include-deleted# Get dirs/files inside the shareazstoragefilelist--account-name<name>--share-name<share-name>## If type is "dir", you can continue enumerating files inside of itazstoragefilelist--account-name<name>--share-name<prev_dir/share-name># Download a complete share (with directories and files inside of them)azstoragefiledownload-batch-d.--source<share-name>--account-name<name># Get snapshots/backupsazstoragesharelist--account-name<name>--include-snapshots--query"[?snapshot != null]"# List contents of a snapshot/backupazstoragefilelist--account-name<name>--share-name<share-name>--snapshot<snapshot-version>#e.g. "2024-11-25T11:26:59.0000000Z"# Download snapshot/backupazstoragefiledownload-batch-d.--account-name<name>--source<share-name>--snapshot<snapshot-version>
Get-AzStorageAccount# List File SharesGet-AzStorageShare-Context (Get-AzStorageAccount-ResourceGroupName "<resource-group-name>"-Name "<storage-account-name>").Context# Get Directories/Files Inside the ShareGet-AzStorageFile-ShareName "<share-name>"-Context (Get-AzStorageAccount-ResourceGroupName "<resource-group-name>"-Name "<storage-account-name>").ContextGet-AzStorageFile-ShareName "<share-name>"-Path "<share-directory-path>"-Context (Get-AzStorageAccount-ResourceGroupName "<resource-group-name>"-Name "<storage-account-name>").Context# Download a Complete ShareGet-AzStorageFileContent-ShareName "<share-name>"-Destination "C:\Download"-Path "<share-directory-path>"-Context (Get-AzStorageAccount-ResourceGroupName "<resource-group-name>"-Name "<storage-account-name>").Context# Get Snapshots/BackupsGet-AzStorageShare-Context (Get-AzStorageAccount-ResourceGroupName "<resource-group-name>"-Name "<storage-account-name>").Context |Where-Object { $_.SnapshotTime-ne$null }# List Contents of a Snapshot/BackupGet-AzStorageFile-ShareName "<share-name>"-Context (New-AzStorageContext-StorageAccountName "<storage-account-name>"-StorageAccountKey (Get-AzStorageAccountKey-ResourceGroupName "<resource-group-name>"-Name "<storage-account-name>"|Select-Object-ExpandProperty Value) -SnapshotTime "<snapshot-version>")
Por padrão, o az cli usará uma chave de conta para assinar uma chave e realizar a ação. Para usar os privilégios do principal do Entra ID, use os parâmetros --auth-mode login --enable-file-backup-request-intent.
Use o parâmetro --account-key para indicar a chave da conta a ser usada
Use o parâmetro --sas-token com o token SAS para acessar via um token SAS
Conexão
Estes são os scripts propostos pela Azure no momento da escrita para conectar um File Share:
Você precisa substituir os espaços reservados <STORAGE-ACCOUNT>, <ACCESS-KEY> e <FILE-SHARE-NAME>.
$connectTestResult =Test-NetConnection-ComputerName filescontainersrdtfgvhb.file.core.windows.net -Port 445if ($connectTestResult.TcpTestSucceeded) {# Save the password so the drive will persist on rebootcmd.exe/C "cmdkey /add:`"<STORAGE-ACCOUNT>.file.core.windows.net`" /user:`"localhost\<STORAGE-ACCOUNT>`" /pass:`"<ACCESS-KEY>`""# Mount the driveNew-PSDrive-Name Z -PSProvider FileSystem -Root "\\<STORAGE-ACCOUNT>.file.core.windows.net\<FILE-SHARE-NAME>"-Persist} else {Write-Error-Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."}