DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesAzure - Débutant : premiers pas dans le cloud Microsoft04 - Stocker des fichiers avec Azure Blob Storage

Détails

  • 30 minutes
  • Débutant

Objectifs

  • Créer un compte de stockage Azure et un conteneur Blob
  • Uploader et télécharger des fichiers avec la CLI Azure
  • Configurer les niveaux d'accès (privé, Blob, conteneur)
  • Générer une URL SAS pour partager un fichier temporairement
Module Azure - Débutant : premiers pas dans le cloud Microsoft

Exercice 04 : Stocker des fichiers avec Azure Blob Storage

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer un compte de stockage et un conteneur Blob via la CLI Azure
  • ✅ Uploader des fichiers et les lister
  • ✅ Configurer les niveaux d'accès d'un conteneur
  • ✅ Générer une URL SAS (Shared Access Signature) pour partager un fichier

Durée estimée : 30 minutes

Difficulté : ⭐☆☆☆☆ (Débutant)

Prérequis : Compte Azure gratuit, Azure CLI installée


📖 Contexte

Azure Blob Storage est le service de stockage d'objets de Microsoft Azure. "Blob" signifie "Binary Large Object". Il est utilisé pour stocker des images, vidéos, logs, sauvegardes, fichiers statiques de sites web... L'équivalent de S3 chez AWS. La durabilité est de 99.999999999999999% (16 neuf) avec le stockage géo-redondant.


📋 Énoncé

Créez un compte de stockage Azure, gérez des fichiers et partagez-les via des URLs temporaires.


🧭 Déroulement de l'exercice

Tâche 1 : Créer le compte de stockage

bash
# Se connecter à Azure
az login

# Créer un groupe de ressources dédié
az group create \
  --name rg-stockage-exercice \
  --location francecentral

# Créer le compte de stockage (nom unique globalement : 3-24 chars, minuscules/chiffres)
STORAGE_ACCOUNT="devopsstorage$(date +%Y%m%d%H%M | tail -c 7)"
echo "Nom du compte : $STORAGE_ACCOUNT"

az storage account create \
  --name $STORAGE_ACCOUNT \
  --resource-group rg-stockage-exercice \
  --location francecentral \
  --sku Standard_LRS \         # Localement Redondant (le moins cher)
  --kind StorageV2 \
  --access-tier Hot            # Accès fréquent

# Voir le compte créé
az storage account show \
  --name $STORAGE_ACCOUNT \
  --resource-group rg-stockage-exercice \
  --query "{nom:name,etat:statusOfPrimary,sku:sku.name}" \
  --output table

Tâche 2 : Créer des conteneurs et uploader des fichiers

bash
# Récupérer la clé de connexion
ACCOUNT_KEY=$(az storage account keys list \
  --account-name $STORAGE_ACCOUNT \
  --resource-group rg-stockage-exercice \
  --query '[0].value' \
  --output tsv)

# Créer deux conteneurs (comme des "dossiers racine")
az storage container create \
  --name documents \
  --account-name $STORAGE_ACCOUNT \
  --account-key $ACCOUNT_KEY \
  --public-access off          # Privé par défaut

az storage container create \
  --name images-publiques \
  --account-name $STORAGE_ACCOUNT \
  --account-key $ACCOUNT_KEY \
  --public-access blob         # Accès public au niveau Blob

# Créer des fichiers de test
echo "Document confidentiel - ne pas partager" > document-prive.txt
echo "<h1>Image publique de test</h1>" > image-test.html

# Uploader les fichiers
az storage blob upload \
  --container-name documents \
  --file document-prive.txt \
  --name docs/document-prive.txt \
  --account-name $STORAGE_ACCOUNT \
  --account-key $ACCOUNT_KEY

az storage blob upload \
  --container-name images-publiques \
  --file image-test.html \
  --name test/image.html \
  --account-name $STORAGE_ACCOUNT \
  --account-key $ACCOUNT_KEY

# Lister les blobs
az storage blob list \
  --container-name documents \
  --account-name $STORAGE_ACCOUNT \
  --account-key $ACCOUNT_KEY \
  --output table

Tâche 3 : Tester les niveaux d'accès

bash
# URL directe du blob public (conteneur images-publiques)
PUBLIC_URL="https://${STORAGE_ACCOUNT}.blob.core.windows.net/images-publiques/test/image.html"
echo "URL publique : $PUBLIC_URL"
curl $PUBLIC_URL

# URL directe du blob privé → 403 Forbidden
PRIVATE_URL="https://${STORAGE_ACCOUNT}.blob.core.windows.net/documents/docs/document-prive.txt"
curl $PRIVATE_URL
# → AuthorizationFailure

Tâche 4 : Générer une URL SAS

Une SAS (Shared Access Signature) est une URL temporaire qui donne accès à un fichier privé pendant une durée définie.

bash
# Générer une SAS valable 2 heures
END_TIME=$(date -u -d "+2 hours" +"%Y-%m-%dT%H:%MZ")

SAS_URL=$(az storage blob generate-sas \
  --container-name documents \
  --name "docs/document-prive.txt" \
  --account-name $STORAGE_ACCOUNT \
  --account-key $ACCOUNT_KEY \
  --permissions r \              # r=read, w=write, d=delete
  --expiry $END_TIME \
  --https-only \
  --full-uri \
  --output tsv)

echo "URL SAS (valable 2h) : $SAS_URL"

# Tester l'accès via la SAS
curl "$SAS_URL"
# → Contenu du document privé

# Après 2h, l'URL sera invalide (403 Signature not valid)

Indice : Les URLs SAS sont parfaites pour partager des fichiers temporairement avec des utilisateurs sans compte Azure (ex: envoyer un rapport à un client). La SAS peut être révoquée en changeant la clé de compte, ou en créant une SAS basée sur une "Stored Access Policy" (révocable individuellement).


Tâche 5 : Nettoyer les ressources

bash
# Supprimer le groupe de ressources (supprime tout ce qu'il contient)
az group delete --name rg-stockage-exercice --yes --no-wait

✅ Vérification du résultat

  • Le compte de stockage et les 2 conteneurs sont créés
  • curl $PUBLIC_URL retourne le contenu HTML du blob public
  • curl $PRIVATE_URL retourne une erreur 403
  • La SAS URL permet d'accéder au blob privé temporairement

💡 À retenir

Niveaux d'accès d'un conteneur :

NiveauAccès sans authentification
Privé❌ Aucun
Blob✅ Lecture des blobs (pas la liste)
Conteneur✅ Lecture + liste des blobs

Redondance du stockage Azure :

SKUCopiesProtection contre
LRS3 (1 datacenter)Défaillance d'un rack
ZRS3 zones de dispoDéfaillance d'un datacenter
GRS6 (2 régions)Catastrophe régionale

✨ Solution Complète

bash
# Upload rapide
az storage blob upload \
  --container-name mon-conteneur \
  --file ./mon-fichier.txt \
  --name chemin/dans/blob.txt \
  --account-name MON_COMPTE \
  --auth-mode login    # Utilise l'identité connectée (az login)

# Télécharger
az storage blob download \
  --container-name mon-conteneur \
  --name chemin/dans/blob.txt \
  --file ./telechargement.txt \
  --account-name MON_COMPTE
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer le compte de stockage
  • Tâche 2 : Créer des conteneurs et uploader des fichiers
  • Tâche 3 : Tester les niveaux d'accès
  • Tâche 4 : Générer une URL SAS
  • Tâche 5 : Nettoyer les ressources
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète