AZ-802 non chiede se sai creare una share dal portale: chiede che cosa si rompe quando irrigidisci le impostazioni SMB dell’account, quante share Azure servono per tre volumi di un file server, e quale strumento preserva le ACL in migrazione. Sono domande di conseguenza, non di procedura.
Creare la share e decidere come si parla SMB
Le share SMB di Azure Files vivono in uno storage account (Microsoft.Storage): kind FileStorage per il modello provisioned (SSD o HDD), StorageV2 per il pay-as-you-go su HDD. Una singola share non puo’ essere insieme SMB e NFS. Azure File Sync lavora solo con share SMB in storage account.
Le impostazioni del protocollo si configurano sull’account, non sulla singola share. Si leggono con Get-AzStorageFileServiceProperty (un valore null significa «default in vigore», non «disabilitato») e si scrivono con Update-AzStorageFileServiceProperty:
| Impostazione | Valori ammessi | Default |
|---|---|---|
-SmbProtocolVersion |
SMB2.1, SMB3.0, SMB3.1.1 |
tutte |
-SmbAuthenticationMethod |
NTLMv2, Kerberos |
entrambi |
-SmbKerberosTicketEncryption |
RC4-HMAC, AES-256 |
entrambi |
-SmbChannelEncryption |
AES-128-CCM, AES-128-GCM, AES-256-GCM |
tutti |
Il profilo di default e’ quello di massima compatibilita’: restringere taglia fuori dei client. Tre conseguenze da sapere a memoria:
- togliere NTLMv2 disabilita il mount con la chiave dello storage account: e’ l’unico meccanismo che la chiave usa. Le credenziali di dominio non passano mai da NTLM;
- lasciare solo AES-256-GCM esclude tutto cio’ che precede Windows 11 / Windows Server 2022, e sui client supportati va comunque forzato con
Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM"; - una sessione che non soddisfa i vincoli fallisce con
STATUS_ACCESS_DENIED, non con un errore di rete.
Separata da queste c’e’ Require Encryption in Transit for SMB, impostazione per-protocollo: attiva di default sui nuovi account creati dal portale, non selezionata su quelli creati da PowerShell, CLI o REST. Quando e’ attiva, SMB 2.1 e’ escluso comunque, perche’ non sa cifrare il canale.
I due livelli di permesso, e chi vince
L’autenticazione basata su identita’ usa una sola identity source per storage account, valida per tutte le sue share: AD DS on-premises, Microsoft Entra Domain Services, oppure Microsoft Entra Kerberos. Azure Files riceve solo il ticket Kerberos, mai le credenziali. Il controllo d’accesso e’ a due piani, e vince sempre il piu’ restrittivo:
- share-level: ruoli RBAC di Azure, assegnati sull’oggetto in Microsoft Entra ID;
- directory e file-level: ACL di Windows (NTFS), applicate dopo aver montato la share.
| Ruolo | Che cosa concede |
|---|---|
| Storage File Data SMB Share Reader | lettura |
| Storage File Data SMB Share Contributor | lettura, scrittura, cancellazione |
| Storage File Data SMB Share Elevated Contributor | in piu’, modifica delle ACL |
| Storage File Data Privileged Contributor / Privileged Reader | accesso scavalcando le ACL esistenti |
| Storage File Data SMB Admin | accesso equivalente alla chiave, con takeOwnership |
Con identity source AD DS, il ruolo non si assegna all’oggetto di dominio ma alla sua identita’ ibrida sincronizzata in Entra ID con Entra Connect Sync o Cloud Sync: un gruppo che esiste solo on-premises non e’ assegnabile. Il contrario invece funziona: un utente non sincronizzato prende comunque i permessi di un gruppo sincronizzato, perche’ Azure Files legge i SID dei gruppi dal ticket Kerberos, non l’elenco dei membri nel portale. Se sincronizzare e’ impossibile, resta il default share-level permission (uno solo per account, inizializzato a None), che concede un ruolo a tutte le identita’ autenticate e lascia il lavoro fine alle ACL. Quando coesiste con un’assegnazione puntuale, vince il permesso piu’ alto.
Per scrivere le ACL serve un mount con accesso amministrativo: o il ruolo Storage File Data SMB Admin (che consente takeown quando la ACL esistente nega l’accesso), o la chiave dell’account. Monta con net use, non con PowerShell: una share montata da PowerShell non e’ visibile a File Explorer ne’ a cmd.exe. icacls e File Explorer valgono per le identita’ ibride; per le cloud-only servono il portale o il modulo RestSetAcls.
Azure File Sync: gli oggetti e i vincoli che decidono la topologia
Uno storage sync service contiene registered server e sync group; ogni sync group ha un cloud endpoint (la share Azure) e uno o piu’ server endpoint (un percorso su un server registrato, mai una share di rete). L’agente installa FileSyncSvc.exe e il filtro StorageSync.sys.
| Vincolo | Valore |
|---|---|
| Storage sync service per server | 1 |
| Cloud endpoint per sync group | 1, e quella share non puo’ stare in un altro sync group |
| Server endpoint per sync group, per server registrato | 1 |
| Share Azure sincronizzabili da un server o cluster | 30 |
| File system | solo NTFS ad attacco diretto (no ReFS, no NAS) |
Da qui segue la risposta a un classico: piu’ volumi di un server non si consolidano in un’unica share Azure. Tre volumi significano tre share Azure e tre sync group. Piu’ share sullo stesso volume invece si consolidano: basta sincronizzare la radice del volume.
Il cloud tiering lascia in locale solo la cache, con due criteri combinabili: volume free space policy (percentuale di spazio libero da mantenere) e date policy (tiera i file non acceduti da N giorni). Non si abilita sul volume di sistema. La share Azure ha sempre la copia completa.
Monitorare: portale, metriche, event log
Le metriche arrivano ad Azure Monitor ogni 15 minuti sullo storage sync service: Sync session result, Files not syncing, Server online status, Cloud tiering low disk space mode, Cloud tiering recall size, Agent version expiration information. Il portale mostra lo stato dei registered server (Online / Appears Offline, quest’ultimo quando AzureStorageSyncMonitor.exe non gira) e la salute dei server endpoint, che non e’ calcolata in cloud: viene dal Telemetry event log del server, in Applications and Services\Microsoft\FileSync\Agent.
| Event ID | Dice |
|---|---|
| 9102 | sessione di sync conclusa (HResult, PerItemErrorCount) |
| 9302 | avanzamento, ogni 5-10 minuti (AppliedItemCount) |
| 9121 | un errore per-item, con conteggi persistenti e transitori |
| 9301 | il server interroga il servizio, ogni 30 secondi |
| 9003 / 9006 | errori di tiering / di recall |
Una sessione che fallisce ma con AppliedItemCount che cresce sta progredendo: il server endpoint resta Healthy. Sul server ci sono anche i contatori Perfmon AFS Bytes Transferred e AFS Sync Operations.
Le due migrazioni rimaste in programma
Da DFS-R ad Azure File Sync. L’ordine e’ d’esame: sync group, agente sul server che ha il set completo dei dati, server endpoint senza cloud tiering, upload completo, agente sugli altri server DFS-R, disabilitare DFS-R, server endpoint sugli altri server (sempre senza tiering), verifica, ritiro di DFS-R, e solo alla fine si accende il cloud tiering. Se durante la transizione DFS-R deve restare acceso: cloud tiering disabilitato sui volumi con cartelle replicate, nessun server endpoint su una cartella DFS-R read-only, e un solo server endpoint sovrapposto a una location DFS-R. DFS-N invece convive senza riserve.
Da file share ad Azure Files senza File Sync. Lo strumento e’ RoboCopy, che parla SMB e copia a piena fedelta’; AzCopy sync non e’ adatto perche’ non propaga le cancellazioni. Il comando di riferimento e’ robocopy <origine> <destinazione> /MT:20 /R:2 /W:1 /B /MIR /IT /COPY:DATSO /DCOPY:DAT /NP /NFL /NDL /XD "System Volume Information" /UNILOG:<log>. S e O in /COPY sono le ACL e l’owner; U (auditing) non e’ memorizzabile in Azure Files, quindi /COPYALL non ha senso. /B richiede la console elevata e il mount con la chiave dello storage account. Si fa una prima passata lunga, una o piu’ incrementali, poi si toglie l’accesso agli utenti e si fa l’ultima: e’ quella la finestra di fermo.
Trappole tipiche d’esame
- Togliere NTLMv2 spegne la chiave dello storage account. E’ l’irrigidimento che rompe di piu’: i mount con
/user:localhost\<account>smettono di funzionare, mentre Kerberos continua. Lo stesso vale pericacls, se lo stavi facendo montando con la chiave. - Il ruolo RBAC si assegna all’oggetto Entra ID, non a quello AD DS. Con identity source AD DS serve l’identita’ ibrida sincronizzata; ma un utente non sincronizzato eredita comunque i permessi di un gruppo sincronizzato, perche’ il SID viaggia nel ticket Kerberos.
- Due volumi non entrano in una sola share Azure. Un cloud endpoint sta in un solo sync group e un sync group ammette un solo server endpoint per server registrato: N volumi da sincronizzare = N share Azure = N sync group.
- Durante la convivenza con DFS-R il cloud tiering va spento, e i server endpoint non vanno sulle cartelle replicate read-only. Accendere il tiering e’ l’ultimo passo, dopo il ritiro di DFS-R.
- RoboCopy con
/Bvuole la chiave, non il dominio. Con un’identita’ di dominio l’errore che ottieni non ti porta alla causa. E/MIRcancella sul target cio’ che non c’e’ sull’origine: se sbagli il livello di cartella, distruggi. Azure File Syncnon usa SMB verso Azure. Sync e trasferimento file viaggiano su HTTPS/443; la porta 445 serve solo a chi monta la share direttamente.