Aller au contenu

PD-7 — Rétrospective

1. Contexte

Champ Valeur
Story ID PD-7
Titre HSM FIPS 140-2 Level 3 (AWS CloudHSM)
Domaine infrastructure-souveraine
Projet infra
Date complétion 2026-02-02
Verdict ACCEPTÉ

2. Métriques

Métrique Valeur
Pipeline contractuel 41 PASS, 0 FAIL, 0 SKIP
Progression REFUSÉ → RÉSERVES → ACCEPTÉ
Écarts initiaux 3 (E-01 bloquant, E-02/E-03 majeurs)
Écarts résolus 3/3

3. Learnings clés

  • L'acceptabilité est un registre probatoire, pas un examen : La progression REFUSÉ → RÉSERVES → ACCEPTÉ est normale et attendue. La clé est la traçabilité des corrections.

  • Les tests contractuels doivent être exécutés en CI avant toute revue : Un verdict sur des tests ABSENT est nécessairement un refus. L'intégration CI est un prérequis non négociable.

  • La séparation des permissions IAM en CI nécessite une cartographie préalable : Chaque job CI doit connaître ses besoins IAM. Les permissions manquantes ne se manifestent qu'à l'exécution.

  • Les SKIP sont des dettes contractuelles : Un test SKIP n'est pas un PASS. Il doit être converti en validation architecturale explicite ou reporté avec justification.

  • L'infrastructure HSM est un engagement long terme : CloudHSM impose des contraintes de coût (24/7), de réseau (VPN), et de gestion des clés (rotation annuelle).

4. Patterns applicables

Nouveau pattern : Modules Terraform CloudHSM

module "vpc_hsm" {
  source = "./modules/vpc_hsm"

  cidr_block         = var.hsm_vpc_cidr
  availability_zones = var.hsm_azs
  vpn_customer_gateway_ip = var.ovh_vpn_ip
}

module "cloudhsm_cluster" {
  source = "./modules/cloudhsm_cluster"

  vpc_id     = module.vpc_hsm.vpc_id
  subnet_ids = module.vpc_hsm.private_subnet_ids

  # Monitoring CloudWatch intégré
  enable_cloudwatch = true
  alarm_actions     = [aws_sns_topic.alerts.arn]
}

Pattern confirmé : SDK CloudHSM 5 avec env-var auth

# Authentification persistante CI (pas de session login)
export CLOUDHSM_ROLE=pv-backend-svc
export CLOUDHSM_PIN=${HSM_PIN}

# Commandes avec sortie JSON structurée
cloudhsm-cli key list --format json | jq '.keys[] | select(.label | startswith("pv-master-"))'

5. Signal CLAUDE.md

Priorité haute : Exécuter tests contractuels en CI avant acceptabilité.

### Infrastructure — Tests contractuels CI obligatoires (2026-02-XX)

**RÈGLE** : Aucune revue d'acceptabilité sans pipeline CI vert incluant les tests contractuels.

**Checklist pré-revue** :
1. [ ] Tests contractuels dans `.gitlab-ci.yml`
2. [ ] Pipeline exécuté sur la branche à valider
3. [ ] Résultat visible dans l'artefact JUnit
4. [ ] 0 FAIL, 0 SKIP (ou SKIP justifiés)

**Pourquoi** : E-01 bloquant sur PD-7 = tests non exécutés en CI au moment de la première revue.

6. Conclusion

PD-7 a livré l'infrastructure CloudHSM FIPS 140-2 Level 3 avec VPC dédié, VPN IPSec vers OVH, monitoring CloudWatch complet, et intégration PKCS#11 backend. La progression en 3 itérations (REFUSÉ → RÉSERVES → ACCEPTÉ) démontre l'importance d'exécuter les tests contractuels en CI avant toute revue et de cartographier les besoins IAM.


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