Gérer la rétention des données dans le stockage S3

Automatisation de la suppression d'objets avec les règles de cycle de vie dans S3.

Le stockage S3 est un système de stockage de données distribué dans lequel chaque fichier est conservé dans un conteneur spécialisé appelé bucket. L'accès aux données est géré via la S3 API, garantissant une compatibilité totale avec les outils AWS et les autres services standards du secteur.

Un lifecycle dans S3 est un mécanisme « configurer et oublier » qui automatise des actions sur les objets au fil du temps. Le cas d'usage le plus courant est la suppression automatique de fichiers après un certain nombre de jours ou à une date prédéfinie. Cela permet d'optimiser votre espace de stockage en purgeant automatiquement les données temporaires, les logs et les anciens backups.

Fonctionnalités prises en charge

  1. Expiration — supprime les objets après un nombre de jours défini depuis l'upload ou à une date calendaire précise.
  2. Prefix — restreint la portée de la règle à un chemin spécifique (par ex., uniquement le dossier logs/).
  3. Contraintes :
    • Valeur minimale — 1 jour.
    • Heure d'exécution — les suppressions sont traitées à 00:00 UTC.

Supprimer tous les objets après 30 jours

Pour mettre en place un nettoyage automatisé de votre bucket, suivez ces étapes :

Étape 1. Création du fichier de configuration Créez un fichier local nommé lifecycle.json avec la configuration suivante :

{
  "Rules": [
    {
      "ID": "DeleteAfter 30Days",
      "Prefix": "",
      "Status": "Enabled",
      "Expiration": {
        "Days": 30
      }
    }
  ]
}

Étape 2. Application de la configuration au bucket Utilisez l'utilitaire AWS CLI pour envoyer les paramètres vers votre stockage en exécutant la commande aws s3api put-bucket-lifecycle-configuration :

aws s3api put-bucket-lifecycle-configuration \
  --bucket your-bucket-name \
  --lifecycle-configuration file://lifecycle.json

Étape 3. Vérification des règles actives Pour confirmer que la configuration a bien été appliquée, exécutez la commande aws s3api get-bucket-lifecycle-configuration :

aws s3api get-bucket-lifecycle-configuration \
  --bucket your-bucket-name

Conseil

Si vous souhaitez désactiver complètement la suppression automatique, exécutez simplement la commande aws s3api delete-bucket-lifecycle --bucket your-bucket-name.

Supprimer des fichiers dans un dossier spécifique

Si vous souhaitez purger uniquement un répertoire précis — comme logs/ — définissez le paramètre Prefix.

{
  "Rules": [
    {
      "ID": "DeleteLogsAfter7Days",
      "Prefix": "logs/",
      "Status": "Enabled",
      "Expiration": {
        "Days": 7
      }
    }
  ]
}

Une fois appliquée, cette règle n'affectera que les objets situés dans le chemin logs/....

Supprimer des fichiers à une date précise

Pour définir une échéance fixe pour la conservation des données, utilisez le paramètre Date.

{
  "Rules": [
    {
      "ID": "DeleteAtMidnight",
      "Prefix": "",
      "Status": "Enabled",
      "Expiration": {
        "Date": "2026-12-01T00:00:00Z"
      }
    }
  ]
}

Important

L'horodatage doit respecter le format ISO 8601 (par ex., 2026-12-01T00:00:00Z). Notez que les heures, minutes et secondes doivent être strictement définies à 00:00:00.

Points clés pour une gestion efficace

Pour vous assurer que vos règles de lifecycle se comportent comme prévu, gardez ces nuances techniques à l'esprit :

  • Délai d'exécution : les règles de lifecycle sont généralement évaluées une fois par jour à 00:00 UTC. Toutefois, la suppression physique des données peut prendre jusqu'à 24 heures après l'expiration de la période définie.

  • Vérification du statut d'expiration : vous pouvez voir précisément quand un objet est programmé pour la suppression en consultant ses métadonnées. Exécutez la commande head-object et recherchez l'en-tête x-amz-expiration dans la réponse.

  • Dossiers virtuels : S3 est un système de stockage à plat. Les « dossiers » ne sont que des préfixes dans les noms de fichiers. Si une règle supprime tous les objets avec un préfixe donné, le « dossier » disparaîtra effectivement de la liste dans la console.

Note sur le versioning

Si le versioning est activé sur votre bucket, les règles Expiration standard ne feront que créer des « Delete Markers ». Pour purger les anciennes versions de vos fichiers, vous devez configurer des règles NoncurrentVersionExpiration supplémentaires.

Conseil pro

Avant d'appliquer une règle globale (avec un "Prefix": "" vide) sur des données de production, testez-la toujours sur un bucket de test ou un sous-dossier spécifique afin d'éviter toute perte de données accidentelle.

Aide

Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !

Besoin d’aide?Nos ingénieurs vous aideront gratuitement pour n’importe quelle question en quelques minutesNous contacter