Aller au contenu

PD-5 — Rétrospective

1. Contexte

Champ Valeur
Story ID PD-5
Titre Configuration Glacier Deep Archive Paris
Domaine storage
Projet infra
Date complétion 2025-01-XX
Verdict ACCEPTÉ AVEC RÉSERVES

2. Métriques

Métrique Valeur
Écarts majeurs 1 (Vault Lock absent)
Écarts mineurs 4
Points fluides 12
Points difficiles 5

3. Learnings clés

  • Object Lock et Vault Lock sont deux mécanismes distincts : Object Lock COMPLIANCE protège au niveau de l'objet (rétention individuelle), Vault Lock verrouille la policy du vault de manière irréversible. La spec demandait les deux.

  • Vault Lock est irréversible après completion : complete_lock = true rend la policy permanente. Tests exhaustifs obligatoires avant activation production.

  • Les défauts de variables doivent correspondre aux tests d'acceptation : Ambiguïté spec (J+1 vs J+90) doit être clarifiée avant implémentation.

  • La preuve d'état est un livrable : "Preuve Vault Lock In Effect" doit être capturée (output Terraform, screenshot, API response) pour audit conformité NF Z42-013.

  • Glacier Deep Archive a des contraintes opérationnelles fortes : Délai restoration 12-48h rend tests d'accès longs et coûteux.

4. Patterns applicables

Nouveau pattern : Distinction Object Lock vs Vault Lock

# Object Lock = protection par objet (S3)
resource "aws_s3_bucket_object_lock_configuration" "this" {
  bucket = aws_s3_bucket.this.id
  rule {
    default_retention {
      mode = "COMPLIANCE"
      years = var.retention_years
    }
  }
}

# Vault Lock = policy immuable (Glacier)
resource "aws_glacier_vault_lock" "this" {
  complete_lock = true  # IRRÉVERSIBLE
  policy        = data.aws_iam_policy_document.vault_policy.json
  vault_name    = aws_glacier_vault.this.name
}

Pattern confirmé : Lifecycle Deep Archive

lifecycle_rule {
  id     = "archive-to-glacier"
  status = "Enabled"

  transition {
    days          = var.lifecycle_transition_days
    storage_class = "DEEP_ARCHIVE"
  }

  noncurrent_version_transition {
    noncurrent_days = 30
    storage_class   = "DEEP_ARCHIVE"
  }
}

5. Signal CLAUDE.md

Priorité haute : Documenter distinction Object Lock vs Vault Lock.

### AWS S3/Glacier — Object Lock vs Vault Lock (2026-02-XX)

**Deux mécanismes WORM distincts** :

| Mécanisme | Scope | Service | Réversibilité |
|-----------|-------|---------|---------------|
| Object Lock | Par objet | S3 | COMPLIANCE irréversible |
| Vault Lock | Policy vault | Glacier | Irréversible après complete |

**NF Z42-013 exige les deux** :
1. Object Lock COMPLIANCE pour immutabilité des objets
2. Vault Lock pour policy vault permanente

**Preuve obligatoire** : Capturer l'état "In Effect" pour audit.

6. Conclusion

PD-5 a livré l'archivage Glacier Deep Archive avec Object Lock COMPLIANCE, lifecycle transitions et monitoring CloudWatch. L'écart majeur (Vault Lock absent) démontre l'importance de clarifier les deux mécanismes WORM AWS dès la spec. Le pattern distinction Object Lock/Vault Lock est critique pour conformité NF Z42-013 et certification ISO 14641.


Rétrospective générée 2026-02-19 (Étape 10 batch storage)