7 — Azure Storage
Service de stockage cloud massivement scalable. Tout passe par un Storage Account (SA) qui contient les services : Blob, Files, Queue, Table. Endpoints publics par défaut.
A. Storage Account
Types (kind)
| Type | Services supportés | Performance | Note |
|---|---|---|---|
| General-purpose v2 (GPv2) ⭐ | Blob + Files + Queue + Table | Standard | Recommandé MS, supporte tous les features (tiers, lifecycle, ZRS, etc.) |
| Premium Block Blob | Blob (Block + Append) | Premium SSD | Faible latence, transactions massives. Pas de tiers (pas de Cool/Archive) |
| Premium File Shares (FileStorage) | Files uniquement | Premium SSD | High IOPS, low latency. Provisioned billing |
| Premium Page Blobs | Blob (Page) | Premium SSD | Disques VM non managés (legacy) |
| Tous | Standard | 🚨 Retraite 13 oct 2026. Création bloquée Q1 2026. Upgrade vers GPv2 (gratuit, sans downtime) | |
| Blob uniquement | Standard | 🚨 Création bloquée 3 mars 2026, upgrade auto vers GPv2 après oct 2026 |
Propriétés clés (à la création)
- Nom : 3-24 chars lowercase + chiffres, globalement unique (devient le DNS :
<nom>.blob.core.windows.net) - Performance : Standard (HDD/SSD mix) ou Premium (SSD)
- Replication : LRS / ZRS / GRS / GZRS / RA-GRS / RA-GZRS (voir section E)
- Access tier par défaut : Hot ou Cool (modifiable après, niveau Blob individuel)
- Networking : public, selected networks (Service Endpoint), private (Private Endpoint), disabled
- Hierarchical Namespace (HNS) : pour Data Lake Gen2 → vrais dossiers, ACLs POSIX, optimisé big data. À cocher à la création (irréversible)
Move : un SA peut être déplacé cross-RG / cross-sub. Pas cross-region direct → recréer dans la nouvelle region.
B. Blob Storage
Hiérarchie
Storage Account > Container > Blob (pas de vrais dossiers — ce sont des prefixes dans le nom). Avec HNS activé : vrais dossiers + ACLs.
Types de blobs
| Type | Pour quoi | Note |
|---|---|---|
| Block Blob | Fichiers, images, vidéos, backups, logs | Le plus courant. Max 190.7 TiB |
| Append Blob | Logs (append-only), audit | Optimisé pour ajout en fin |
| Page Blob | Disques VM non managés | Random read/write, max 8 TiB |
Access Tiers (Block Blob uniquement)
| Tier | Stockage | Access | Min retention | Use case |
|---|---|---|---|---|
| Hot | $$$ | $ | Aucun | Données actives |
| Cool | $$ | $$ | 30 jours | Backups, logs récents (peu accédés) |
| Cold ⭐ (nouveau) | $ | $$$ | 90 jours | Archives accessibles online |
| Archive | $ minimum | $$$$ + rehydration (heures) | 180 jours | Compliance, archivage long terme |
Niveau par blob (Hot/Cool/Cold) ou par SA (default tier). Archive = blob doit être rehydraté (Hot/Cool) avant d'être lu (rehydratation = 1-15h). Frais de early deletion si suppression avant la min retention.
Lifecycle Management
- Règles JSON pour automatiser : déplacement entre tiers, suppression de blobs/snapshots/versions selon âge ou tags.
- Filterset par préfixe (ex
container1/) ou index tag (exdepartment=finance). - ⚠️ Append blobs ne supportent pas les access tiers → seulement règle delete.
Conditions disponibles :
daysAfterModificationGreaterThan: depuis dernière modif (uniquementbaseBlob)daysAfterCreationGreaterThan: depuis création (uniquementsnapshot/version)daysAfterLastAccessTimeGreaterThan: depuis dernier accès (uniquementbaseBlob) — nécessite Last-Access Time Tracking activé
🚨 Lifecycle policy — scope d'application (piège ARM template) : Une règle a 3 scopes possibles sous
actions:
baseBlob: agit sur le blob actuel (version courante). Conditions =daysAfterModificationoudaysAfterLastAccessTime.snapshot: agit sur les snapshots du blob. Condition =daysAfterCreation.version: agit sur les previous versions (si versioning activé). Condition =daysAfterCreation.Piège exam : si le template ARM met
tierToCoolsoussnapshotavecdaysAfterCreationGreaterThan: 90, ça ne touche PAS le blob courant — juste les snapshots de plus de 90j. Bien lire le scope avant de répondre.
filters.prefixMatch: array de prefixes (ex["container1/"]) → la règle ne cible que ce(s) container(s)/prefixe(s). Les autres containers du SA = pas affectés.
Last-Access Time Tracking :
- Activer sur le SA :
Lifecycle management > Enable last-access time tracking(ou via API/CLI). - Coût : tracking lui-même est gratuit, mais Azure met à jour le
lastAccessTimeau max 1× / 24h pour limiter l'impact transactionnel. - Une fois activé, on peut écrire des règles type "tier to Cool si pas accédé depuis 30 jours" plutôt que basé sur la modif.
Blob Index Tags
Métadonnées clé-valeur attachées à un blob pour le classifier, filtrer, retrouver.
- Max 10 tags par blob, key 128 chars / value 256 chars.
- Indexés au niveau du SA → recherche cross-container possible (
Find blobs by tags). - Utilisables dans lifecycle policies, SAS (limiter l'accès aux blobs ayant un tag spécifique via filter expression).
- Modifiables après upload (différent des metadata classiques qui sont aussi possibles, mais non indexées).
- Supportés : GPv2 + Premium Block Blob, avec HNS = non supporté (utiliser tags via APIs spécifiques).
- RBAC : nécessite
Storage Blob Data OwnerouTag Contributordata role.
Object Replication (Block Blob)
- Réplication async vers un autre SA (même ou autre region/sub/tenant).
- Prérequis sur source ET destination : Versioning + Change Feed activés.
- Types de SA supportés : GPv2 ou Premium Block Blob (source ET destination). ❌ GPv1, ❌ BlobStorage legacy.
- Policy avec rules : quels blobs (prefix), copy filter, copy mode (now / sync everything).
- ❌ Pas de réplication des blobs en Archive (les rehydrater d'abord).
🚨 Object Replication vs GRS — choix de la region cible (piège exam) :
- GRS / GZRS : Azure impose le regional pair (ex SEA → East Asia). Tu ne choisis pas la region secondaire.
- Object Replication : tu choisis librement la region/sub/tenant cible.
⚠️ Piège exam : "compliance impose réplication SEA →
Australia Central" → Object Replication (GRS forceraitEast Asia, le regional pair). Versioning seul = juste un prérequis, pas le mécanisme de copie.
Immutable Blob Storage (WORM)
Empêche modif/suppression des blobs pendant une période → compliance (SEC 17a-4, GDPR…).
| Type | Comment | Réversible ? |
|---|---|---|
| Time-based retention | Période X jours | Locked = non, Unlocked = oui |
| Legal Hold | Switch on/off, pas de date | Oui (par admin) |
- Scope : container OU version-level (nécessite versioning activé)
- Supporté : GPv2, Premium Block Blob
Autres features Blob à connaître
- Soft delete :
- Blob soft delete : récup blobs supprimés (1-365 j, default 7)
- Container soft delete : récup container supprimé (1-365 j)
- Versioning : snapshot auto à chaque modif (préalable pour Object Replication, version-level immutability)
- Change feed : log append-only de tous les changements (audit, replication)
- Point-in-time restore : rollback blob à un instant T (nécessite versioning + change feed + soft-delete)
- Snapshots : copie point-in-time manuelle d'un blob
- Static website :
Static websiteblade → enable → upload dans$webcontainer, endpoint dédié (<sa>.z??.web.core.windows.net) - Anonymous public access : 🚨 Désactivé par défaut sur les nouveaux SA (depuis nov 2023). Doit être explicitement activé au niveau du SA pour pouvoir l'activer au niveau du container.
C. Access Control
4 méthodes d'authentification
| Méthode | Quoi | Niveau | Recommandation |
|---|---|---|---|
| Anonymous public access | Lecture publique des blobs | Container | Désactivé par défaut, à éviter |
| Shared Key (Access Keys) | 2 clés (primary/secondary), accès complet au SA | Storage Account | ⚠️ À désactiver (Allow Shared Key access: Disabled). Si compromise = full access |
| SAS Token | URL signée avec permissions limitées | Variable selon type | Pour accès temporaire / délégué |
| Entra ID + RBAC ⭐ | Identité Azure (user, MI, SP) avec role assignment | Granulaire | Recommandé MS |
SAS — 3 types
| Type | Génération | Scope | Note |
|---|---|---|---|
| Account SAS | Avec une access key | Tous services du SA | Si key tourne → SAS invalide |
| Service SAS | Avec une access key ou stored access policy | 1 service (blob/file/queue/table) | Stored Access Policy = revocation centralisée |
| User Delegation SAS ⭐ | Avec un token Entra ID (pas d'access key) | Blob seulement | Recommandé MS : pas de dépendance aux access keys, expire avec le token Entra |
Stored Access Policy : attachée à un container/share/queue/table → définit permissions + dates. Un Service SAS peut s'y référer → si on supprime/modifie la policy, tous les SAS associés sont invalidés. Sans policy, un SAS reste valide jusqu'à sa date d'expiration.
⚠️ Max 5 stored access policies par container/share/queue/table simultanément. Au-delà → erreur HTTP 400 (Bad Request).
Roles RBAC clés (data plane, sur le SA ou container)
- Storage Blob Data Owner : full + ACLs (HNS)
- Storage Blob Data Contributor : R/W/D
- Storage Blob Data Reader : R only
- Storage File Data SMB Share Contributor / Elevated Contributor / Reader : pour Files SMB
- Storage Queue Data Contributor / Reader / Sender / Processor
Distinction :
Contributor(control plane, gère le SA mais pas l'accès aux data) vsStorage Blob Data Contributor(data plane, accès aux blobs).
Storage networking (firewall)
SA > Networking > Public network access :
- Disabled : seul Private Endpoint
- Enabled from selected virtual networks and IPs : whitelist VNets (Service Endpoint) + IP/CIDR
- Enabled from all networks : ouvert (default historique, à éviter)
Voir fiche 5 pour Service Endpoint vs Private Endpoint.
D. Redundancy
Options
| Option | Copies | Où | SLA Read | Use case |
|---|---|---|---|---|
| LRS | 3 | 1 datacenter (zone) | 99.9% | Cheap, dev/test |
| ZRS | 3 | 3 zones de la region | 99.9% | HA intra-region |
| GRS | 6 | 3 LRS primary + 3 LRS secondary region | 99.9% | DR cross-region |
| GZRS | 6 | 3 ZRS primary + 3 LRS secondary | 99.9% | HA + DR (best) |
| RA-GRS / RA-GZRS | Idem GRS/GZRS + endpoint secondary readable | Idem | 99.99% lecture sec | Workloads pouvant lire la copie sec |
💡 Choix DR cost-effective + read-access secondaire :
- GRS seul = pas de read access en secondaire → si tu veux lire la copie secondaire (ex: app continue en read-only pendant outage primaire), il faut un suffixe RA.
- RA-GRS ⭐ = le moins cher parmi ceux qui offrent read-access secondaire. Réplication async cross-region + endpoint
<sa>-secondary.blob.core.windows.net.- RA-GZRS = même idée mais avec ZRS au primaire (donc HA intra-region en plus). Plus cher que RA-GRS.
- Si la question demande "DR + read-access secondaire + cost-effective" → RA-GRS, pas RA-GZRS.
Premium Block Blob et Premium File Shares = LRS / ZRS uniquement (pas de geo).
Failover
- Customer-initiated failover : tu déclenches le failover vers la region secondaire si MS n'a pas réagi.
- Après failover : la sub passe en LRS dans la region secondaire (perd la geo-redundancy → reconfigurer après).
- RPO ~15 min typique (asynchrone).
Conversion entre redundancies
- LRS ↔ ZRS, GRS ↔ GZRS, etc. : la plupart directement dans le portail (
Redundancyblade). - Certaines transitions nécessitent un ticket support (anciennement, c'était plus le cas — vérifier).
🚨 Live migration vers ZRS — contraintes (piège exam) :
- SA supportés : GPv2 / FileStorage / BlockBlobStorage uniquement. ❌ GPv1, ❌ BlobStorage legacy.
- Source : LRS ou GRS uniquement. ❌ RA-GRS direct → switcher vers LRS/GRS d'abord (l'étape intermédiaire retire le endpoint secondary read-only).
- LRS ↔ ZRS dans la même region = ticket Azure Support (live migration), pas dans le portail seul.
⚠️ Mauvaises réponses fréquentes : "GPv1 supporte ZRS" (faux), "RA-GRS → RA-GZRS direct" (faux, switcher d'abord vers GRS).
Redondance ≠ Backup. Si tu supprimes un blob, il est supprimé partout. Pour récupérer : soft-delete + versioning + Azure Backup (RSV).
E. Encryption
| Couche | Quoi | Statut |
|---|---|---|
| SSE (Storage Service Encryption) | AES-256 at-rest, always-on, transparent | Obligatoire, gratuit |
| PMK (Platform-Managed Keys) | Clés gérées par MS | Default |
| CMK (Customer-Managed Keys) | Tes clés via Azure Key Vault + Managed Identity sur le SA | Optionnel, pour control |
| Customer-Provided Keys | Tu fournis la clé à chaque request (header) | Niche (rarement utilisé) |
| Infrastructure encryption | Double encryption (service + infra) | À cocher à la création (irréversible) |
| Encryption scopes (Blob seulement) | Clés différentes par container/blob, override config SA | Multi-tenancy |
💡 Encryption Scopes (Blob only) — détail : sous-niveau d'encryption avec clés indépendantes par container ou par blob (override du chiffrement du SA). Créés au niveau du SA (
Storage Account > Encryption > Encryption scopes > Add), puis :
- Assignation default par container (à la création du container) → tous les nouveaux blobs héritent.
- Assignation override par blob individuel (à l'upload via header
x-ms-encryption-scope).Supporte PMK ou CMK indépendamment de la config SA, + Infrastructure encryption activable par scope. Désactivable ensuite, mais les blobs déjà chiffrés conservent leur scope d'origine.
Use case : multi-tenancy (1 container par tenant avec sa propre clé CMK) ou compliance granulaire.
Transport
- Secure transfer required = HTTPS only (activé par défaut). Refuse HTTP + SMB 2.1.
- Min TLS version : configurable (TLS 1.2 minimum recommandé).
F. Azure Files
Partages de fichiers managés (vs Files Sync = solution hybride). Protocoles : SMB ou NFS.
Tiers
| Tier | SA type | Latence | Use case |
|---|---|---|---|
| Premium | FileStorage | <ms | Prod, DB, VDI |
| Transaction Optimized | GPv2 | ms | Workloads transactionnels |
| Hot | GPv2 | ms | Partages généraux |
| Cool | GPv2 | ms | Archives accessibles |
SMB vs NFS
| SMB | NFS v4.1 | |
|---|---|---|
| OS cible | Windows (Linux/macOS aussi) | Linux/Unix |
| SA type | GPv2 ou FileStorage | FileStorage uniquement |
| Connectivité | Public OK + privé | Privé obligatoire (Service Endpoint ou Private Endpoint) |
| Auth | Identity-based ou Storage Key | POSIX (UID/GID), réseau |
| Encryption in-transit | SMB 3.0+ AES | Not encrypted natively (passer par VPN/Private Link) |
Identity-based auth (SMB uniquement)
3 méthodes, une seule active à la fois par SA :
| Méthode | Use case | Prérequis |
|---|---|---|
| On-prem AD DS | AD existant | Sync vers Entra ID + line-of-sight au DC depuis le client |
| Microsoft Entra Domain Services | Pas d'AD on-prem mais besoin Kerberos | Entra DS managé activé (cloud) |
| Microsoft Entra Kerberos ⭐ | Cloud-first, hybrid users | Pas besoin de DC. Clients Entra Joined / Hybrid Joined |
Le storage account doit être joint au domaine (AD/Entra DS) ou avoir Entra Kerberos activé. Permissions share-level via RBAC (
Storage File Data SMB Share Contributor…) + permissions NTFS classiques sur les fichiers (gérables depuis n'importe quel client joint).
⭐ Setup AD DS auth pour Azure Files — ordre des 4 étapes (piège drag-and-drop) :
- Sync on-prem AD vers Entra ID (Entra Connect Sync ou Cloud Sync) — prérequis hybrid identity.
- Enable AD DS authentication sur le SA (
Storage Account > File shares > Active Directory: Configure).- Assign share + directory permissions : RBAC share-level (
Storage File Data SMB Share Contributor) + NTFS ACLs file-level.- Mount file share depuis client domain-joined avec AD creds.
Azure File Sync
Étend un serveur de fichiers Windows on-prem vers Azure → centralisation cloud + accès local rapide.
Composants :
- Storage Sync Service : ressource Azure régionale
- Sync Group : 1 share Azure (cloud endpoint) + 1+ serveurs Windows (server endpoints)
- Agent installé sur chaque serveur Windows à enregistrer
Règles :
- 1 Sync Group = 1 cloud endpoint (1 share Azure) → pour ajouter un 2e share, créer un autre sync group
- 1 Sync Group = N server endpoints (multi-serveurs)
- 1 server = enregistré sur 1 seul Storage Sync Service
- 🚨 1 server = max 1 server endpoint dans le MÊME sync group → impossible d'ajouter
F:\folder1ETF:\folder2du même serveur dans le même group (même si les chemins ne se recouvrent pas). Pour ça, créer un autre sync group.
Ordre exact de déploiement (piège exam, séquence tutorialdojo) :
1. Deploy Storage Sync Service (ressource Azure)
2. Deploy Azure File Sync agent sur le serveur Windows
3. Register le serveur avec le Storage Sync Service
4. Set up sync group + cloud endpoint (1 share Azure)
5. Create server endpoint (path local sur le serveur)
Mnémo : Service → Agent → Register → Group → Endpoint. Ne pas inverser register/sync group : on ne peut pas créer un server endpoint sans avoir register le server avant.
Cloud Tiering (optionnel) :
- Date policy : tier les fichiers non accédés depuis X jours
- Volume free space policy : garder X% libre sur le serveur
- Les fichiers tierés gardent leur entrée dans l'arbo (reparse point), réhydratés à la demande
Sync ↔ inverse : changements on-prem → cloud rapides, cloud → on-prem peuvent prendre jusqu'à 24h (forcer via PowerShell
Invoke-AzStorageSyncChangeDetection).
Azure NetApp Files (ANF)
Service de file shares haute performance (NetApp natif sur Azure), pour workloads critiques que Azure Files ne peut pas absorber : SAP HANA, HPC, EDA, VDI massif, DBs.
Différences clés vs Azure Files :
- Performance bien supérieure (sub-ms latency, jusqu'à plusieurs GiB/s).
- Protocoles : NFSv3, NFSv4.1, SMB, dual-protocol.
- Pas dans un Storage Account → ressource séparée avec hiérarchie propre.
- Délégation de subnet obligatoire : un subnet dédié (
Microsoft.NetApp/volumes) dans le VNet.
Hiérarchie :
NetApp Account (région)
└─ Capacity Pool (4 TiB min, 500 TiB max — service level fixé ici)
└─ Volume(s) (le share consommé par les clients)
Service Levels (par capacity pool) :
| Niveau | Throughput / TiB | Use case |
|---|---|---|
| Standard | 16 MiB/s | Throughput modéré |
| Premium | 64 MiB/s | DBs, apps entreprise |
| Ultra | 128 MiB/s | HPC, workloads critiques |
| Flexible | jusqu'à 640 MiB/s | Capacity et throughput facturés séparément (no overprovisioning) |
Possibilité de changer dynamiquement le service level (déplacer le volume vers un autre capacity pool). 24h min entre 2 changements descendants. Cool Access disponible (tiering vers stockage moins cher pour blocs froids).
Pour AZ-104 : retenir l'existence + la hiérarchie + subnet délégué. Pas de questions très détaillées attendues.
G. Data Transfer Tools
| Outil | Pour quoi | Note |
|---|---|---|
| AzCopy | CLI multi-plateforme (Windows + Linux + macOS), transfert massif Blob + File | Recommandé pour scripts. Auth = SAS ou Entra ID uniquement (pas Kerberos, pas API key, pas Cloud Shell standalone). Vrai pour Blob ET File storage |
| Storage Explorer | GUI desktop (Win/Mac/Linux) | Multi-comptes, drag-and-drop |
| Storage Browser | Le même mais dans le portail Azure | Limité, mais sans install |
| Data Box (Disk / Box / Heavy) | Disques physiques envoyés à Azure | Volumes énormes (TB-PB) où la BP réseau est insuffisante |
| Anciennement, envoi de tes propres disques | 🚨 Retiré — utiliser Data Box | |
| AzCopy via SMB / robocopy | Migration File Shares | Préserve métadonnées NTFS |
DEMO — chemins portail
Créer un Storage Account
Storage accounts > Create- Choisir : kind (GPv2), perf (Standard/Premium), replication (LRS/ZRS/GRS/GZRS)
- Onglet Advanced : HNS si Data Lake, secure transfer, min TLS, blob anonymous, Shared Key access (Disabled recommandé)
- Networking : public/selected/disabled, Service Endpoint, Private Endpoint
- Encryption : PMK ou CMK (KV + MI)
- Data protection : soft-delete blob/container/share, versioning, change feed, immutability default
Blob — opérations courantes
SA > Containers > + Container(private/public access level)- Upload : drag-and-drop ou AzCopy. Choisir tier au upload (Hot/Cool/Cold).
- Change tier : clic droit blob > Change tier
- Default tier du SA :
Configuration > Blob access tier (default) - Snapshot/version : clic droit > Create snapshot
SAS Token
SA > Shared access signature(Account SAS)- Cocher services + permissions + dates + IP + protocoles
- Generate SAS and connection string → copier (perdu si pas sauvegardé)
- Pour User Delegation SAS : depuis Storage Browser/AzCopy avec login Entra → généré sans access key
Stored Access Policy (Service SAS revocable)
Container > Access policy > + Add policy- Définir nom, dates, permissions
- Lors de la création d'un Service SAS : sélectionner cette policy → SAS héritera des permissions/dates
RBAC pour data access
SA > Access Control (IAM) > Add role assignment- Choisir un rôle Data (
Storage Blob Data Contributor, etc.) — pasContributorqui ne donne pas accès aux data ! - Assigner à user/group/MI
Lifecycle policy
SA > Data management > Lifecycle management > Add a rule- Conditions sur âge (modification, last-access via tracking), filterset (prefix / index tag)
- Actions : tier to cool/cold/archive, delete blob, delete snapshot/version
Object Replication
- Source SA : activer Versioning + Change Feed (Data protection)
- Destination SA : activer Versioning
- Source SA >
Object replication > Create replication rules→ choisir destination, prefix, copy options - Vérifier la copie après quelques minutes
Immutable Storage
- Container-level :
Container > Access policy > Immutable blob storage > Add policy(Time-based ou Legal Hold) - Version-level : créer le SA avec
Enable version-level immutability support(irréversible) puis policy au niveau blob ou version
Failover de redondance
SA > Geo-replication→ vérifier que LastSyncTime est récent- Initiate failover → la region secondaire devient primary, redondance passe en LRS
- Reconfigurer la redundancy si besoin (
Redundancy > Geo-redundant)
Encryption Storage — CMK + Key Vault (DEMO)
- Préparer Key Vault :
Key vaults > Createavec Soft-delete ACTIVÉ + Purge protection ACTIVÉE (obligatoires pour CMK). - Créer une clé RSA :
KV > Keys > Generate/Import→ type RSA, taille 2048+ (2048/3072/4096). Activer rotation auto (optionnel). - Activer Managed Identity sur le SA :
SA > Identity > System assigned > On(ou User-assigned MI séparée). - Donner accès à la MI du SA sur le KV :
KV > Access policies(ou RBAC) → ajouter la MI avecGet,WrapKey,UnwrapKey. - Activer CMK sur le SA :
SA > Encryption→ Customer-managed keys → sélectionner le KV + la key (version "auto" recommandée pour suivre la rotation, ou version fixe). - Vérifier :
SA > Encryptionaffiche le statut "Customer-managed key" + URL de la key.
💡 Infrastructure encryption (double encryption service + infra) : à cocher à la création du SA, irréversible.
Encryption Scope (Blob only) — DEMO
- Créer un Encryption Scope :
SA > Encryption > Encryption scopes > Add→ choisir PMK ou CMK (avec KV+key), Infrastructure encryption optionnelle. - Assigner par container (default) :
Containers > [container] > Edit→ Encryption scope =myscope. Tous les nouveaux blobs héritent. - Assigner par blob (override) : à l'upload via CLI/SDK avec
--encryption-scope myscope(ou headerx-ms-encryption-scope). - Désactiver un scope :
SA > Encryption scopes > [scope] > Disable. Les blobs déjà chiffrés gardent leur scope d'origine, mais nouveaux uploads refusés sur ce scope.
Azure Files — créer + monter
SA > File shares > + File share(tier, quota)- Onglet
Connect→ script PowerShell (Windows) ou mount (Linux) avec storage key OU Entra - Pour identity-based :
SA > File shares > Active Directory: Configure→ choisir AD DS / Entra DS / Entra Kerberos
Azure File Sync
Storage Sync Services > Create(région)- Install agent + register server : installer l'agent Azure File Sync sur le serveur Windows → register au Storage Sync Service (l'install puis le register sont 2 étapes distinctes en exam)
- Sync group : créer le sync group + pointer vers le share Azure (cloud endpoint)
- Add server endpoint au sync group : path local + cloud tiering rules
- Vérifier le sync (
Storage Sync Services > Sync group > Server endpoint)
🏢 Scenarios d'entreprise réels — pensée d'architecte
Comment ces services s'utilisent dans la vraie vie. Pour chaque scenario : contexte business → choix techniques (uniquement les services traités dans la fiche) → pièges typiques.
Scenario 1 : Plateforme de streaming média (broadcaster TV / VOD)
Contexte business : Broadcaster gère 5 PB de contenus vidéo. Les nouveautés sont vues massivement le premier mois, puis le trafic chute. Le catalogue legacy reste accessible mais peu vu. Réglementation : 7 ans de conservation des masters. Choix techniques : Storage Account GPv2 + Premium Block Blob pour les manifests/segments HLS chauds, lifecycle management automatisant Hot → Cool → Cold → Archive, RA-GZRS pour les masters critiques, Last-Access Time Tracking activé. Architecture / pattern :
- Container
live-streaming/en Premium Block Blob (latence sub-ms pour les segments HLS de live TV) - Container
vod-catalog/GPv2 Hot par défaut, lifecycle : Hot → Cool à 30j, Cool → Cold à 90j, Cold → Archive à 365j (basé surdaysAfterLastAccessTime) - Container
masters/en RA-GZRS Cool + Immutable Storage time-based 7 ans (compliance contractuelle avec les ayants droit) - CDN devant les blobs Hot pour absorber les pics
- Object Replication vers SA secondaire dans une autre region pour le DR éditorial Pièges à éviter :
- Premium Block Blob ne supporte pas les tiers Hot/Cool/Archive — y mettre du contenu rarement vu = facture x10 vs GPv2 Cool
- Lifecycle policy avec
daysAfterLastAccessTimesans avoir activé Last-Access Time Tracking → la condition n'est jamais évaluée, rien ne tier - Archive sans prévoir la rehydration (1-15h) → impossible de servir un contenu archive en mode "lecture immédiate"
- Object Replication impose Versioning + Change Feed activés des deux côtés et ne réplique pas les blobs en Archive (rehydrater d'abord)
Scenario 2 : Migration de file servers Windows on-prem multi-sites (groupe industriel multi-pays)
Contexte business : Groupe industriel avec 25 filiales mondiales. Chaque site a un file server Windows local (DFS) avec PDF/CAO/Excel partagés. DSI veut centraliser sans casser l'expérience utilisateur (latence locale). Choix techniques : Azure Files SMB (tier Transaction Optimized) + Azure File Sync sur chaque file server local, identité on-prem AD DS synchronisée vers Entra ID, cloud tiering activé. Architecture / pattern :
- 1 SA GPv2 par share métier (1 share = max 100 TB en standard, partition logique propre)
- File Sync Group par share avec cloud endpoint + N server endpoints (1 par filiale)
- Cloud tiering policy : "garder 20% libre + tier fichiers non accédés > 30j"
- AD DS auth activée sur le SA → permissions NTFS héritées des anciens shares
- GRS sur les SA (DR cross-region cost-effective, pas besoin de read-access secondaire en runtime)
- Backup Azure des shares via RSV (rétention 7 ans) Pièges à éviter :
- Mettre tous les shares dans 1 seul SA → quota d'IOPS partagé sur le SA, contention entre filiales
- 1 server = max 1 server endpoint dans le même sync group : impossible de sync
F:\projectsETF:\archivesdu même serveur dans le même group → créer 2 sync groups - Cloud tiering trop agressif (5% libre) → rappel constant des fichiers à la première ouverture, expérience utilisateur dégradée
- AD DS auth nécessite line-of-sight au DC depuis le client — VPN/ExpressRoute obligatoire entre le site distant et le DC
Scenario 3 : Archive de compliance financière (banque / asset manager)
Contexte business : Asset manager soumis à SEC 17a-4 et FINRA 4511 doit conserver emails, ordres de marché, communications client en WORM pendant 7 ans, non altérable. Audit annuel. Choix techniques : Storage Account GPv2 + Immutable Blob Storage (time-based retention locked) + Archive tier + GZRS + Infrastructure encryption activée à la création + CMK via Key Vault. Architecture / pattern :
- SA dédié
salegalarchive-prod(séparé du reste pour scope d'audit clair) - Versioning + Soft delete (containers + blobs) + Change Feed activés (audit trail)
- Container avec Time-based retention policy LOCKED 7 ans → personne ne peut shorten ou delete (même un Storage Account Owner)
- Lifecycle : Hot 30j → Cool 90j → Archive (
daysAfterCreation) — pas Last-Access (les masters ne sont pas accédés en routine) - Legal Hold ajouté à la demande sur des sous-folders pendant les contentieux
- GZRS (HA intra + DR inter-region) + Infrastructure encryption (double couche, irréversible)
- Shared Key access désactivé, accès uniquement RBAC Entra + User Delegation SAS Pièges à éviter :
- Time-based retention Unlocked : un admin peut shorten la période → ne satisfait pas SEC 17a-4 (qui exige WORM strict). Toujours Lock la policy après validation.
- Archive tier coûte cher à lire (rehydration + transactions) → ne pas mettre en Archive ce qui sera audité tous les mois
- Oublier Infrastructure encryption à la création = irréversible, faut recréer le SA pour l'avoir
- GRS au lieu de GZRS : LRS au primaire = single-DC, ne survit pas à une panne zone. Pour compliance : GZRS minimum.
Scenario 4 : Backend HPC / SAP HANA partagé (industrie pharma, ERP)
Contexte business : Workload SAP HANA scale-out a besoin d'un /hana/shared accessible par tous les nodes HANA, latence sub-ms, throughput plusieurs GiB/s. Azure Files standard est trop lent.
Choix techniques : Azure NetApp Files (capacity pool Ultra ou Flexible), protocole NFSv4.1, subnet délégué Microsoft.NetApp/volumes, snapshot policies natives.
Architecture / pattern :
- NetApp Account dans la même region que les VMs HANA, dans le même VNet (subnet délégué dédié)
- Capacity Pool 4 TiB Ultra (128 MiB/s par TiB) pour
/hana/dataet/hana/log, pool Premium séparé pour/hana/shared - Volumes NFSv4.1 mounts depuis chaque VM HANA
- Snapshots ANF déclenchés via Azure Backup / scripts pour des restores instantanés
- Pas dans un Storage Account → ressource séparée, billing différent (capacité provisionnée, pas pay-per-GB consommé) Pièges à éviter :
- Oublier la délégation de subnet au provider
Microsoft.NetApp/volumes→ la création du volume échoue avec erreur cryptique - Mettre un capacity pool Standard pour HANA → throughput insuffisant, SAP refusera le support
- Tenter d'utiliser Azure Files Premium pour HANA → non certifié SAP. Azure Files Premium = très bon pour fileshares généraux, pas pour /hana/data
- Service level change downgrade (Ultra → Standard) : 24h min entre 2 descentes — verrouille les opérations rapides
Sources : Azure Blob lifecycle management, Hybrid file services architecture, Immutable storage overview, Azure NetApp Files for SAP HANA