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)