Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 818 minIntermédiaire

Azure Blob Storage : stockage objet, niveaux d'accès et redondance

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • distinguer stockage objet, bloc et fichier ;
  • choisir un niveau d'accès et une redondance selon l'usage ;
  • déposer et lire des blobs sans clé d'accès, avec Entra ID ;
  • automatiser l'archivage avec une règle de cycle de vie.

4 exercices corrigés1 schéma

Azure Blob Storage est le service de stockage objet d'Azure : il conserve n'importe quel fichier (un blob) dans des conteneurs, accessibles par une API HTTPS, avec un prix au gigaoctet qui dépend du niveau d'accès choisi (chaud, froid, archive) et de la redondance (nombre et emplacement des copies). C'est l'équivalent d'Amazon S3 chez Microsoft. Ce chapitre situe le stockage objet par rapport aux disques et aux partages de fichiers, explique les niveaux d'accès, la redondance et la sécurisation des accès, puis te fait stocker et archiver les bons de livraison de Sorbier.

Objet, bloc, fichier : trois façons de stocker

TypeCe qu'on manipuleProtocoleDans AzureUsage typique
BlocUn disque brut, que le système formateInterne à la VM, iSCSIDisques managésDisque système d'une VM, base de données sur VM
FichierDes dossiers et des fichiers partagésSMB, NFSAzure FilesPartage de fichiers d'équipe, remplacement d'un serveur de fichiers
ObjetDes objets (données, métadonnées, identifiant) dans des conteneurs, sans vraie arborescenceAPI HTTPS (REST)Blob StorageDocuments numérisés, images, vidéos, sauvegardes, journaux, fichiers d'un site web

Le stockage objet tient des volumes énormes à bas coût, mais on n'y modifie pas un fichier en place comme sur un disque : on écrit, on lit, on remplace un objet entier. Le cours Stockage et NAS avec TrueNAS compare les trois types côté infrastructure locale.

Compte de stockage, conteneur et blob

Les données sont rangées sur trois niveaux :

  • le compte de stockage, avec un nom unique dans tout Azure, une région, une redondance et des paramètres de sécurité ;
  • des conteneurs, l'équivalent des compartiments (buckets) de S3, qui regroupent des blobs et portent leurs propres droits ;
  • des blobs, les objets eux-mêmes. Le nom d'un blob peut contenir des barres obliques (2026/11/BL-2026-004512.pdf) : le portail les affiche comme des dossiers, mais ce ne sont que des préfixes.

Chaque blob a une adresse : https://<compte>.blob.core.windows.net/<conteneur>/<blob>. Les documents et fichiers ordinaires sont des blobs de blocs ; les blobs d'ajout servent aux journaux qu'on complète, les blobs de pages aux disques.

Les niveaux d'accès : chaud, froid, archive

Le prix de stockage baisse quand le niveau se refroidit, mais celui de la lecture monte, et une durée minimale de conservation s'applique. Prix relevés en novembre 2026, France Central, redondance LRS, hors taxes :

NiveauPour quelles donnéesStockage, par Go et par moisDurée minimaleDélai de lectureDisponibilité (LRS)
Chaud (hot)Utilisées souvent0,0172 €AucuneMillisecondes99,9 %
Froid (cool)Lues rarement, gardées au moins un mois0,0094 €30 joursMillisecondes99 %
Très froid (cold)Lues très rarement, gardées au moins trois mois0,0040 €90 joursMillisecondes99 %
ArchiveConservées des années, presque jamais lues0,0016 €180 joursJusqu'à 15 heures99 %
  • La durée minimale est facturée même si tu supprimes avant : un blob archivé puis supprimé au bout de 45 jours est facturé comme s'il était resté 180 jours, soit 135 jours de plus.
  • L'archive est hors ligne. Un blob archivé ne peut être ni lu ni modifié : on doit d'abord le réhydrater vers un niveau en ligne, ce qui prend jusqu'à 15 heures en priorité standard. On n'y met donc jamais une donnée dont on pourrait avoir besoin dans l'heure.
  • Le niveau par défaut d'un compte est chaud, froid, très froid ou intelligent (smart tier) ; on peut fixer un autre niveau blob par blob. Le niveau intelligent, réservé aux comptes redondants entre zones (ZRS, GZRS ou RA-GZRS), déplace seul les données entre chaud, froid et très froid selon leur usage.
en ligne : lecture immédiatehors ligneChaudFroidTrès froidArchive0,0172 €0,0094 €0,0040 €0,0016 €par Go et par moispar Go et par moispar Go et par moispar Go et par moisdurée minimaledurée minimaledurée minimaledurée minimalelecturelecturelecturelectureaucune30 jours90 jours180 joursmillisecondesmillisecondesmillisecondesjusqu'à 15 heuresle stockage coûte de moins en moins cherla lecture coûte de plus en plus cher ; seule l'archive fait attendre
Plus le niveau est froid, moins le stockage coûte et plus la lecture coûte ; seule l'archive fait attendre

La redondance : LRS, ZRS, GRS, GZRS

Azure garde toujours au moins trois copies de chaque donnée. La redondance choisie dit où elles se trouvent.

RedondanceCopiesProtège contreDurabilité annuelle annoncée
LRS (locally redundant)3 copies dans un seul centre de donnéesLa panne d'un disque ou d'un serveurAu moins 99,999999999 % (11 « neuf »)
ZRS (zone-redundant)3 copies réparties sur 3 zones de disponibilité de la régionLa perte d'un centre de données entierAu moins 12 « neuf »
GRS (geo-redundant)LRS dans la région principale, plus 3 copies dans la région appairée, copiées de façon asynchroneLa perte de toute une régionAu moins 16 « neuf »
GZRSZRS dans la région principale, plus 3 copies dans la région appairéeLa perte d'une zone et d'une régionAu moins 16 « neuf »

Pour un compte en France Central, la région appairée est France South (Marseille) : avec GRS, les données restent en France. Le niveau archive n'est possible qu'avec LRS, GRS ou RA-GRS (la variante de GRS qui permet de lire la copie secondaire).

Sécuriser l'accès aux blobs

MéthodeCe qu'elle donneRecommandation
Entra ID et rôles RBAC de donnéesUn utilisateur, un groupe ou une identité managée reçoit un rôle : Storage Blob Data Reader (lecture), Storage Blob Data Contributor (lecture et écriture)La méthode à privilégier : nominative, révocable, journalisée, sans secret à stocker
Clés d'accès du compteDeux clés qui donnent tous les droits sur tout le compteÀ éviter : une clé qui fuit dans un dépôt Git donne tout. On peut désactiver l'autorisation par clé partagée
Signature d'accès partagé (SAS)Une URL qui donne un droit précis (lecture d'un blob, par exemple) jusqu'à une datePour partager un fichier avec un tiers ; de préférence une SAS de délégation d'utilisateur, signée avec un compte Entra ID, à durée courte
Accès public anonymeN'importe qui lit le conteneurDésactivé par défaut sur les nouveaux comptes ; à ne réactiver que pour des contenus réellement publics

S'y ajoutent : le chiffrement au repos, toujours actif (AES 256 bits, avec des clés gérées par Microsoft ou par le client dans Azure Key Vault) ; le TLS 1.2 au minimum en transit ; le pare-feu du compte, qui limite les réseaux d'accès, ou un point de terminaison privé dans un réseau virtuel ; la suppression réversible (soft delete), qui garde les blobs supprimés pendant un nombre de jours fixé ; le versionnage ; et les stratégies d'immuabilité (WORM), qui interdisent toute modification ou suppression pendant une durée.

Lab : stocker et archiver les bons de livraison de Sorbier

Sorbier numérise chaque bon de livraison signé. Les bons du mois en cours sont consultés par le service client ; au bout d'un mois, presque plus personne ne les ouvre ; ils doivent être conservés dix ans, comme pièces justificatives (cours Sauvegarde et PRA).

1. Crée le compte de stockage. Choisis un nom unique : stsorbierlab suivi de tes initiales et de deux chiffres.

bash
az group create --name rg-cloud-lab --location francecentral --tags cours=cloud

COMPTE=stsorbierlabjc42
az storage account create \
  --name "$COMPTE" \
  --resource-group rg-cloud-lab \
  --location francecentral \
  --sku Standard_LRS \
  --kind StorageV2 \
  --min-tls-version TLS1_2 \
  --allow-blob-public-access false

2. Donne-toi le droit d'écrire des blobs, avec ton compte Entra ID plutôt qu'une clé.

bash
MOI=$(az ad signed-in-user show --query id --output tsv)
ID_COMPTE=$(az storage account show --name "$COMPTE" --resource-group rg-cloud-lab --query id --output tsv)

az role assignment create \
  --assignee-object-id "$MOI" \
  --assignee-principal-type User \
  --role "Storage Blob Data Contributor" \
  --scope "$ID_COMPTE"

Une attribution de rôle met parfois quelques minutes à s'appliquer : si l'étape suivante répond AuthorizationPermissionMismatch, patiente un peu.

3. Crée un conteneur et dépose un bon de livraison directement au niveau froid.

bash
az storage container create --account-name "$COMPTE" --name bons-livraison --auth-mode login

echo "Bon de livraison BL-2026-004512, signé le 05/11/2026" > BL-2026-004512.txt

az storage blob upload \
  --account-name "$COMPTE" \
  --container-name bons-livraison \
  --name 2026/11/BL-2026-004512.txt \
  --file BL-2026-004512.txt \
  --tier Cool \
  --auth-mode login

az storage blob list \
  --account-name "$COMPTE" \
  --container-name bons-livraison \
  --query "[].{nom:name, niveau:properties.blobTier}" \
  --output table \
  --auth-mode login
text
Nom                         Niveau
--------------------------  --------
2026/11/BL-2026-004512.txt  Cool

4. Archive-le, puis essaie de le lire.

bash
az storage blob set-tier --account-name "$COMPTE" --container-name bons-livraison \
  --name 2026/11/BL-2026-004512.txt --tier Archive --auth-mode login

az storage blob download --account-name "$COMPTE" --container-name bons-livraison \
  --name 2026/11/BL-2026-004512.txt --file copie.txt --auth-mode login

Le téléchargement échoue avec une erreur BlobArchived : le blob est hors ligne. Pour le relire, il faudrait le réhydrater (az storage blob set-tier ... --tier Cool --rehydrate-priority Standard) et attendre jusqu'à 15 heures. C'est pour cette raison qu'on n'archive que ce qu'on ne lira presque jamais.

5. Automatise le cycle de vie. Plutôt que de changer les niveaux à la main, une règle de cycle de vie le fait chaque jour : froid après 30 jours sans modification, archive après 180 jours, suppression après 10 ans (3 650 jours).

bash
cat > cycle-de-vie.json <<'EOF'
{
  "rules": [
    {
      "enabled": true,
      "name": "bons-livraison-dix-ans",
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": ["blockBlob"],
          "prefixMatch": ["bons-livraison/"]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": { "daysAfterModificationGreaterThan": 30 },
            "tierToArchive": { "daysAfterModificationGreaterThan": 180 },
            "delete": { "daysAfterModificationGreaterThan": 3650 }
          }
        }
      }
    }
  ]
}
EOF

az storage account management-policy create \
  --account-name "$COMPTE" \
  --resource-group rg-cloud-lab \
  --policy @cycle-de-vie.json

Le filtre prefixMatch commence par le nom du conteneur : la règle ne touche que les bons de livraison.

6. Protège contre les suppressions accidentelles, puis termine le lab.

bash
az storage account blob-service-properties update \
  --account-name "$COMPTE" \
  --resource-group rg-cloud-lab \
  --enable-delete-retention true \
  --delete-retention-days 14 \
  --enable-versioning true

az group delete --name rg-cloud-lab --yes --no-wait

Exercices

Exercice 1 sur 4 Choisir le niveau d'accès Réussi À revoir

Pour chaque donnée de Sorbier, propose un niveau d'accès et justifie.

  1. Les photos de colis endommagés, consultées pendant les deux semaines de traitement de la réclamation, puis presque jamais.
  2. Les images du site de suivi (logo, icônes), lues des milliers de fois par jour.
  3. Les sauvegardes mensuelles de la base, gardées un an, relues seulement en cas de sinistre, avec un délai de restauration toléré de 24 heures.
  4. Les bons de livraison de plus d'un an, à garder dix ans.
  5. Un export de données qu'un auditeur doit télécharger dans l'heure, une seule fois, dans trois semaines.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Chaud pendant le traitement, puis froid ou très froid par une règle de cycle de vie. L'archive est possible si l'on accepte de ne plus les relire avant 15 heures.
  2. Chaud : lectures très fréquentes, donc le prix d'accès le plus bas. (Pour un site public, on placerait en plus un réseau de diffusion de contenu, un CDN, devant le stockage.)
  3. Très froid, ou archive : la restauration peut attendre jusqu'à 15 heures de réhydratation, ce qui reste sous les 24 heures tolérées. Attention à la durée minimale : avec une rétention d'un an, les 180 jours de l'archive sont respectés.
  4. Archive : conservation longue, lecture exceptionnelle.
  5. Chaud : il doit être lisible immédiatement. Comme il ne restera que trois semaines, le niveau froid (30 jours minimum) ferait payer une suppression anticipée pour une économie minime. L'archive est exclue, puisqu'il faudrait jusqu'à 15 heures pour le relire.

Tu avais trouvé ?

Exercice 2 sur 4 Calculer le coût de stockage Réussi À revoir

Sorbier doit stocker 2 To (2 048 Go) de sauvegardes. Avec les prix du chapitre (France Central, LRS) :

  1. Calcule le coût mensuel dans chacun des quatre niveaux.
  2. Sorbier archive ces 2 048 Go, puis les supprime au bout de 45 jours. Quel supplément paie-t-elle pour la suppression anticipée (compte des mois de 30 jours) ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. Chaud : 2 048 × 0,0172 = 35,23 € par mois ; froid : 2 048 × 0,0094 = 19,25 € ; très froid : 2 048 × 0,0040 = 8,19 € ; archive : 2 048 × 0,0016 = 3,28 €. L'archive coûte environ dix fois moins que le niveau chaud.
  2. Il manque 180 − 45 = 135 jours sur la durée minimale. Le supplément vaut 135 jours de stockage en archive : 2 048 × 0,0016 × 135 ÷ 30 = 14,75 €. Un mauvais choix de niveau peut coûter plus cher que le stockage lui-même.

Tu avais trouvé ?

Exercice 3 sur 4 Choisir la redondance Réussi À revoir

Propose une redondance pour chaque compte de stockage et justifie.

  1. Les fichiers temporaires d'un traitement nocturne, recalculables à partir des données sources.
  2. Les bons de livraison, à conserver dix ans, en France.
  3. Les fichiers d'une application qui doit continuer à fonctionner si un centre de données de Paris tombe.
Voir la réponseMasquer la réponse de l'exercice 3
  1. LRS : la moins chère ; perdre ces fichiers n'a pas de conséquence, on les recalcule.
  2. GRS : une copie dans la région appairée France South protège même contre la perte de la région de Paris, et les données restent en France. GRS est compatible avec le niveau archive.
  3. ZRS : les copies sont réparties sur trois zones de France Central, et le service continue si l'une d'elles tombe. (GZRS ajoute la copie dans une autre région.)

Tu avais trouvé ?

Exercice 4 sur 4 Revue de sécurité Réussi À revoir

Lors d'un audit, tu trouves un compte de stockage avec : l'accès public anonyme activé sur le conteneur bons-livraison, la clé d'accès du compte écrite dans le fichier config.js de l'application, aucune suppression réversible et une version minimale de TLS 1.0. Liste les risques et les corrections.

Voir la réponseMasquer la réponse de l'exercice 4
  • Accès public : n'importe qui peut lire les bons de livraison, qui contiennent des noms, adresses et signatures, donc des données personnelles. C'est une violation de données au sens du RGPD. Correction : désactiver l'accès public, puis vérifier dans les journaux si des lectures anonymes ont eu lieu, et le cas échéant traiter l'incident (notification à la CNIL sous 72 heures si un risque existe pour les personnes).
  • Clé dans le code : elle donne tous les droits sur le compte, et finit tôt ou tard dans un dépôt Git. Correction : faire tourner (régénérer) la clé, donner à l'application une identité managée avec le rôle Storage Blob Data Reader ou Contributor (chapitre 11), puis désactiver l'autorisation par clé partagée.
  • Pas de suppression réversible : une erreur ou un rançongiciel efface définitivement. Correction : activer la suppression réversible et le versionnage, et une stratégie d'immuabilité pour les données à conserver.
  • TLS 1.0 : protocole obsolète. Correction : version minimale TLS 1.2.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Base de données managée : Azure Database for MySQLRevoir le sommaire du cours