ITSkillsCenter
Business Digital

Cloud Storage : buckets, versioning, lifecycle, sécurité — tutoriel ACE 2026

11 min de lecture

Maîtriser Cloud Storage Google Cloud — buckets, classes Standard/Nearline/Coldline/Archive, versioning, lifecycle policies, uniform bucket-level access et signed URLs — pour le domaine 2 de l’examen ACE et stocker proprement les fichiers de vos applications. Tutoriel pas-à-pas du cluster Associate Cloud Engineer.

📍 Article principal du cluster : Devenir Google Cloud Associate Cloud Engineer (ACE) — Guide complet 2026
Cet article fait partie du cluster « GCP ACE ». Pour la vue d’ensemble, lire d’abord le pilier.

Introduction

Cloud Storage est l’objet store de Google Cloud — l’équivalent S3 chez AWS, Blob Storage chez Azure. Il sert à stocker des fichiers, des sauvegardes, des images, des logs, des artefacts de build, des images Docker, à peu près tout ce qui ne tient pas dans une base relationnelle. À l’examen ACE, on attend de vous quatre choses précises : choisir la bonne classe de stockage, configurer le versioning et les lifecycle policies, gérer l’accès via uniform bucket-level access, et générer des signed URLs pour des partages temporaires. Ce tutoriel couvre ces quatre piliers avec des commandes gcloud et gsutil validées sur la doc officielle d’avril 2026.

Prérequis

  • Compte GCP Free Trial actif et projet lab-ace-2026.
  • gcloud CLI ou Cloud Shell.
  • Quelques fichiers de test (un PDF, une image, un dossier de logs).
  • Niveau attendu : débutant en cloud storage, à l’aise avec un terminal.
  • Temps estimé : 60 minutes.

Étape 1 — Comprendre les quatre classes de stockage

Cloud Storage propose quatre classes de stockage, chacune calibrée pour un profil d’accès différent. La doc officielle les distingue par leur durée minimum de stockage et leur SLA de disponibilité.

Classe API name Durée min SLA dispo (multi/dual-region) Cas d’usage
Standard STANDARD aucune 99,95 % Données chaudes, accès fréquent
Nearline NEARLINE 30 jours 99,9 % Accès ~mensuel
Coldline COLDLINE 90 jours 99,9 % Accès trimestriel maximum
Archive ARCHIVE 365 jours Archivage longue durée, accès rare

La durée minimum est piégeuse : si vous supprimez ou déplacez un objet Coldline avant 90 jours, vous payez quand même les jours manquants pour atteindre 90. C’est l’early deletion fee. À l’examen, vous reconnaîtrez la bonne classe à partir du pattern d’accès décrit dans la question : « accédé une fois par mois » → Nearline ; « accédé une fois par trimestre » → Coldline ; « accédé une fois par an ou jamais » → Archive ; tout le reste → Standard.

Les classes Nearline, Coldline et Archive facturent des retrieval fees à chaque lecture, en plus du stockage. Elles sont moins chères en stockage mais plus chères en accès — l’inverse exact de Standard. Le calcul d’optimisation se fait au cas par cas selon la fréquence d’accès attendue.

Étape 2 — Créer un bucket avec uniform access

Le uniform bucket-level access est officiellement recommandé par Google pour la quasi-totalité des cas d’usage. Il désactive les ACLs par objet et unifie tout le contrôle d’accès via IAM. C’est aussi obligatoire pour utiliser IAM conditions, managed folders, hierarchical namespace et Workforce Identity Federation.

# Creer un bucket en europe-west9 avec uniform access et classe Standard
BUCKET="lab-ace-data-$(gcloud config get project)"
gcloud storage buckets create gs://$BUCKET \
  --location=europe-west9 \
  --default-storage-class=STANDARD \
  --uniform-bucket-level-access \
  --public-access-prevention

# Verifier la configuration
gcloud storage buckets describe gs://$BUCKET --format="yaml(iamConfiguration)"

Trois options critiques. --uniform-bucket-level-access verrouille IAM comme seule source d’autorisation. --public-access-prevention bloque toute tentative d’autoriser l’accès public à des objets — un garde-fou essentiel pour ne jamais finir avec un bucket exposé à allUsers par erreur. --location=europe-west9 choisit Paris ; pour de la haute durabilité, europe-west1 est aussi un excellent choix, et pour multi-region, EU couvre toute l’Europe avec 99,95 % SLA.

Important à savoir : une fois uniform-bucket-level-access activé pendant 90 jours consécutifs, il devient permanent. Vous ne pouvez plus revenir en mode ACL. Décidez du modèle dès le départ.

Étape 3 — Uploader, lister, télécharger des objets

Les opérations CRUD basiques se font avec gcloud storage (recommandé en 2026, remplace gsutil) ou avec gsutil pour la rétrocompatibilité.

# Uploader un fichier
echo "Hello GCP $(date)" > /tmp/hello.txt
gcloud storage cp /tmp/hello.txt gs://$BUCKET/

# Uploader un dossier complet recursivement
gcloud storage cp --recursive /var/log/syslog gs://$BUCKET/logs/

# Lister
gcloud storage ls gs://$BUCKET/
gcloud storage ls --recursive gs://$BUCKET/

# Telecharger
gcloud storage cp gs://$BUCKET/hello.txt /tmp/hello-restore.txt

# Voir les metadonnees d'un objet
gcloud storage objects describe gs://$BUCKET/hello.txt

Les uploads parallèles se gèrent automatiquement pour les fichiers volumineux. Pour transférer plusieurs To de données depuis on-prem, utilisez plutôt Transfer Service ou Transfer Appliance — c’est connu à l’examen, pas besoin de le maîtriser en pratique au niveau ACE.

Étape 4 — Activer le versioning

Le versioning préserve les versions précédentes d’un objet quand il est écrasé ou supprimé. Sans versioning, un cp qui écrase un fichier détruit définitivement l’ancien. Avec versioning, l’ancien devient une noncurrent version récupérable.

# Activer le versioning sur le bucket
gcloud storage buckets update gs://$BUCKET --versioning

# Modifier le fichier puis verifier les versions
echo "Version 2" > /tmp/hello.txt
gcloud storage cp /tmp/hello.txt gs://$BUCKET/
gcloud storage ls --all-versions gs://$BUCKET/hello.txt

# Restaurer une ancienne version (utiliser sa generation number)
gcloud storage cp gs://$BUCKET/hello.txt#GENERATION gs://$BUCKET/hello-restored.txt

Les versions précédentes sont facturées comme des objets normaux — donc le versioning sans limite va coûter cher si l’objet est modifié souvent. C’est pour cela qu’on le combine systématiquement avec une lifecycle policy qui purge les versions trop vieilles. Sans cela, le coût explose.

Étape 5 — Lifecycle policies pour automatiser la rotation

Une lifecycle policy déclenche des actions automatiques sur les objets en fonction de leur âge ou d’autres conditions. Cas typique : passer les objets de Standard à Nearline après 30 jours, à Coldline après 90, à Archive après 365, et supprimer les versions noncurrent au-delà de 60 jours.

cat > /tmp/lifecycle.json <<'EOF'
{
  "rule": [
    {
      "action": {"type": "SetStorageClass", "storageClass": "NEARLINE"},
      "condition": {"age": 30, "matchesStorageClass": ["STANDARD"]}
    },
    {
      "action": {"type": "SetStorageClass", "storageClass": "COLDLINE"},
      "condition": {"age": 90, "matchesStorageClass": ["NEARLINE"]}
    },
    {
      "action": {"type": "SetStorageClass", "storageClass": "ARCHIVE"},
      "condition": {"age": 365, "matchesStorageClass": ["COLDLINE"]}
    },
    {
      "action": {"type": "Delete"},
      "condition": {"isLive": false, "daysSinceNoncurrentTime": 60}
    }
  ]
}
EOF

gcloud storage buckets update gs://$BUCKET \
  --lifecycle-file=/tmp/lifecycle.json

Cette politique automatise une rotation complète sur trois ans avec purge des versions noncurrent à 60 jours. Les actions s’exécutent une fois par jour côté Google, pas en temps réel ; ne vous inquiétez pas si l’effet n’est pas immédiat. À l’examen, retenez que SetStorageClass fait basculer la classe sans recopier ni renommer l’objet ; Delete supprime ; les autres actions sont moins fréquemment testées.

Étape 6 — Contrôle d’accès via IAM

Avec uniform access, IAM est la seule porte d’entrée. Donner le rôle roles/storage.objectViewer au niveau du bucket suffit à autoriser un service account à lister et lire tous les objets, sans les modifier ni les supprimer.

# Donner lecture seule a un service account
gcloud storage buckets add-iam-policy-binding gs://$BUCKET \
  --member="serviceAccount:sa-analytics-reader@lab-ace-2026.iam.gserviceaccount.com" \
  --role="roles/storage.objectViewer"

# Donner ecriture
gcloud storage buckets add-iam-policy-binding gs://$BUCKET \
  --member="serviceAccount:sa-uploader@lab-ace-2026.iam.gserviceaccount.com" \
  --role="roles/storage.objectCreator"

# Verifier la policy
gcloud storage buckets get-iam-policy gs://$BUCKET

Les rôles à connaître pour l’examen : storage.objectViewer (lecture), storage.objectCreator (création seulement, pas de lecture ni suppression), storage.objectAdmin (lecture + écriture + suppression sur un bucket), storage.admin (admin complet sur un bucket ou tout un projet). Évitez systématiquement roles/owner et roles/editor au niveau projet pour autoriser un accès au bucket — ce sont des sur-privilèges classiques.

Étape 7 — Signed URLs pour partages temporaires

Une signed URL est un lien Cloud Storage avec une signature cryptographique qui autorise un accès temporaire à un objet, sans donner d’authentification IAM au porteur du lien. Cas d’usage : envoyer à un client un lien de téléchargement valable 24 heures pour un rapport PDF.

# Creer une signed URL pour 1 heure de lecture
gcloud storage sign-url gs://$BUCKET/hello.txt \
  --duration=1h \
  --private-key-file=KEY_FILE.json

# Variante via gsutil (toujours supporte)
gsutil signurl -d 1h KEY_FILE.json gs://$BUCKET/hello.txt

La signed URL nécessite une clé privée d’un service account autorisé à lire le bucket. Privilégiez la génération via le service account attaché à votre application (sans manipuler de clé), via l’API signBlob de IAM Credentials. Évitez de générer des signed URLs très longues (plus d’une journée) : un lien fuité reste valable jusqu’à expiration.

Étape 8 — Cleanup

# Supprimer tous les objets et leurs versions
gcloud storage rm --recursive gs://$BUCKET/**

# Supprimer le bucket lui-meme
gcloud storage buckets delete gs://$BUCKET

Erreurs fréquentes

Erreur Cause Solution
Bucket avec nom déjà pris Namespace global Cloud Storage Préfixer avec project ID ou un slug unique. Pas de devinettes type « test ».
Early deletion fee surprise Objet Coldline supprimé à 30 jours Vérifier la classe avant suppression. Préférer la lifecycle policy.
Objets accessibles publiquement par erreur ACL legacy avec allUsers Activer public-access-prevention et uniform-access dès la création.
Versioning + pas de purge = facture qui explose Lifecycle policy oubliée Toujours coupler versioning et purge des versions noncurrent.
Signed URL générée mais 403 Service account sans rôle de lecture Donner storage.objectViewer au SA qui signe.
Permission denied après uniform access Anciennes ACLs invalidées Migrer toutes les autorisations vers IAM avant d’activer uniform access.
gsutil deprecated warnings 2026 : gcloud storage est l’outil officiel Migrer scripts vers gcloud storage. gsutil reste supporté mais legacy.

Adaptation au contexte ouest-africain

Choix de localisation. Pour la majorité des PME UEMOA, un bucket en europe-west9 (Paris) offre la meilleure latence tout en restant en UE pour la conformité. Pour des clients marocains/tunisiens, europe-west1 (Belgique) est aussi pertinent. Évitez le multi-region US sauf cas explicite — RGPD et exigences locales.

Sauvegardes ARTCI/CDP. Pour une PME ivoirienne soumise à l’ARTCI, archiver des données opérationnelles en classe Archive sur 365+ jours coûte typiquement quelques centimes par Go-mois — le tarif exact dépend de la région. Pour un téraoctet d’archives sur 5 ans, le coût total reste sous 200 USD si l’accès est rare. Comparé à un NAS local avec ses problèmes électriques et son risque de vol/incendie, c’est imbattable.

Bande passante limitée et reprises. Les uploads massifs depuis Dakar/Bamako bénéficient des reprises automatiques de gcloud storage cp via resumable uploads. Si votre connexion saute en plein transfert d’un fichier 5 Go, relancer la commande reprend où elle s’est arrêtée. Activé par défaut pour les fichiers > 8 Mo.

Distribution de fichiers clients. Pour partager un PDF de 50 Mo avec un client à Cotonou, signed URL d’1 heure plutôt qu’un envoi par email (limite Gmail 25 Mo) ou WhatsApp (limite 100 Mo mais qualité dégradée pour images). Pattern propre, traçable, expirable.

Tutoriels frères

  • IAM GCP : utilisateurs, rôles, service accounts, MFA — pour donner les bonnes permissions sur vos buckets.
  • Cloud SQL Postgres + monitoring et alertes facturation — pour stocker les données structurées plutôt que les fichiers.

Pour aller plus loin

FAQ

Standard ou Nearline pour des images de site web ?
Standard. Si les visiteurs en consultent quelques-unes par seconde, vous payerez plus en retrieval fees Nearline qu’en stockage Standard. Le break-even est typiquement à 1 accès par mois ou moins par objet.

Comment tester rapidement la durée de stockage minimum ?
Sur un fichier-test de 1 Mo, faites gcloud storage objects update pour passer en Coldline puis supprimez immédiatement. Vous verrez l’early deletion fee apparaître dans la facture quelques jours plus tard. Coût négligeable pour l’expérience pédagogique.

Que se passe-t-il si le bucket est plein ?
Cloud Storage n’a pas de limite stricte en pratique — Google indique « pétaoctets ». Vous pouvez stocker des dizaines de millions d’objets dans un bucket sans souci. Au-delà, partitionnez en plusieurs buckets pour des raisons d’organisation, pas de capacité.

Signed URL versus IAM pour partage avec partenaire ?
Si le partenaire a une identité Google → IAM. Sinon (client lambda, lien partagé sur Wave Money par exemple) → signed URL. Ne jamais donner accès via allUsers sauf cas légitime de fichier réellement public.

Comment savoir combien je dépense en Cloud Storage ?
Page Billing → Reports avec filtre par service Cloud Storage. Détaillez par bucket via labels appliqués à la création. Sans labels, la facture agrège tous les buckets du projet.

Object Lifecycle Management peut-il restaurer une version supprimée ?
Non. Lifecycle Management peut changer la classe ou supprimer, mais pas restaurer. Pour restaurer, il faut l’objet versioné toujours présent en classe noncurrent et un cp manuel.

Mots-clés : Cloud Storage GCP, storage classes, Nearline Coldline Archive, versioning, lifecycle policy, signed URL, uniform bucket-level access, ACE certification stockage

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité