Aller au contenu

PD-7 — Plan de reprise d'activité HSM (Disaster Recovery)

Version : 1.0 Spec : PD-7-specification.md Audience : Crypto Officer, Infra Admin, RSSI


1. Objectif

Ce document décrit les procédures de reprise d'activité en cas de perte partielle ou totale du service HSM CloudHSM, conformément aux exigences de disponibilité RNF-36-02 (99,95 %) et aux invariants de sécurité INV-01 à INV-04.


2. Scénarios de défaillance

# Scénario Impact RTO cible RPO
DR-01 Perte d'un HSM (½) Dégradé — pas de redondance < 1h (recréation HSM) 0 (sync auto)
DR-02 Perte du cluster complet Critique — aucune opération crypto < 4h 0 (backup cluster)
DR-03 Perte VPN IPSec Critique — backend isolé du HSM < 30 min N/A
DR-04 Compromission credentials CU Critique — rotation immédiate < 1h N/A
DR-05 Perte région AWS eu-west-3 Catastrophique < 24h Dernière backup

3. Procédures de reprise

DR-01 : Perte d'un HSM (½)

Détection : Alarme CloudWatch HSM_Critical (HSMsAvailable < 2)

Procédure : 1. Vérifier l'état du cluster :

aws cloudhsmv2 describe-clusters --region eu-west-3
2. Créer un nouveau HSM dans l'AZ complémentaire :
aws cloudhsmv2 create-hsm --cluster-id <CLUSTER_ID> \
  --availability-zone eu-west-3b
3. Attendre la synchronisation (état ACTIVE) 4. Vérifier les opérations PKCS#11 :
/opt/cloudhsm/bin/cloudhsm-cli cluster info
5. Confirmer le retour de l'alarme à l'état OK

Impact service : Aucun (failover automatique via client library)


DR-02 : Perte du cluster complet

Détection : Alarme CloudWatch + échec total des opérations PKCS#11

Procédure : 1. Évaluation : Confirmer la perte (pas juste un problème réseau) 2. Communication : Alerter l'équipe (PagerDuty/Slack) 3. Restauration :

# Lister les backups disponibles
aws cloudhsmv2 describe-backups --region eu-west-3

# Restaurer depuis la dernière backup
aws cloudhsmv2 create-cluster \
  --hsm-type hsm2m.medium \
  --source-backup-id <BACKUP_ID> \
  --subnet-mapping SubnetId=<SUBNET_3A>,SubnetId=<SUBNET_3B>
4. Initialisation : Si le cluster est nouveau (pas restauré) : - Reconfigurer via Ansible : setup_hsm_init.yml - Recréer les clés maîtres : setup_master_keys.yml 5. Vérification : - Inventaire HSM conforme - Tests PD-7 passent - Backend opérationnel

Impact service : Total (aucune opération crypto possible pendant la restauration)

Note critique : Les clés générées dans le HSM ne peuvent PAS être restaurées si le cluster est entièrement détruit sans backup. AWS CloudHSM effectue des backups automatiques du cluster.


DR-03 : Perte VPN IPSec

Détection : Alarme CloudWatch VPN_Down + échec PKCS#11

Procédure : 1. Vérifier l'état strongSwan :

sudo ipsec status
sudo ipsec statusall
2. Redémarrer le tunnel :
sudo ipsec restart
# ou
sudo ipsec down aws-tunnel-1 && sudo ipsec up aws-tunnel-1
3. Vérifier la connectivité :
ping -c 3 <HSM_IP>
telnet <HSM_IP> 2223
4. Si le tunnel ne remonte pas : - Vérifier les logs : journalctl -u strongswan-starter - Vérifier la configuration : cat /etc/ipsec.conf - Vérifier le PSK : AWS peut avoir changé les endpoints 5. Re-télécharger la config VPN si nécessaire :
aws ec2 describe-vpn-connections --region eu-west-3

Impact service : Total (backend isolé du HSM)


DR-04 : Compromission credentials CU

Détection : Alarme Auth_Failure_Spike ou alerte sécurité

Procédure : 1. Immédiat : Changer le PIN du CU compromis :

# Login CO
/opt/cloudhsm/bin/cloudhsm-cli login --username admin --role admin
# Changer le PIN
/opt/cloudhsm/bin/cloudhsm-cli user change-password --username <CU_NAME>
2. Mettre à jour Vault/Secrets Manager 3. Redéployer le backend avec les nouveaux credentials 4. Auditer les opérations effectuées avec l'ancien credential :
aws logs filter-log-events --log-group-name "/aws/cloudhsm/<CLUSTER_ID>" \
  --start-time <COMPROMISE_TIMESTAMP>
5. Vérifier l'inventaire HSM (pas d'objets non autorisés) 6. Post-mortem et rapport d'incident

Impact service : Bref (temps de rotation des credentials)


DR-05 : Perte région AWS eu-west-3

Détection : Indisponibilité totale AWS eu-west-3

Procédure : 1. Activer le plan de crise majeure 2. Évaluer la durée estimée de l'indisponibilité (status.aws.amazon.com) 3. Si durée > SLA : - Envisager la migration vers une autre région EU (eu-central-1) - Restaurer depuis les backups inter-régionales (si configurées) - Recréer l'infrastructure via Terraform dans la nouvelle région 4. Communiquer aux clients l'indisponibilité des opérations de signature

Impact service : Catastrophique — nécessite une re-création complète

Mitigation préventive : Évaluer la mise en place de backups CloudHSM cross-region.


4. Backups

Backups automatiques CloudHSM

  • AWS CloudHSM crée des backups automatiques du cluster
  • Les backups sont stockées dans la même région (eu-west-3)
  • Rétention : selon la politique AWS (vérifier via describe-backups)

Vérification des backups

# Lister les backups
aws cloudhsmv2 describe-backups --region eu-west-3 \
  --query 'Backups[*].{Id:BackupId,State:BackupState,Date:CreateTimestamp}'

# Vérifier qu'au moins une backup récente existe
aws cloudhsmv2 describe-backups --region eu-west-3 \
  --query 'Backups[?BackupState==`READY`] | sort_by(@, &CreateTimestamp) | [-1]'

5. Tests de reprise

Test Fréquence Procédure Responsable
Failover HSM (DR-01) Semestriel Supprimer un HSM, vérifier continuité Infra + CO
Restauration cluster (DR-02) Annuel Restaurer depuis backup en env test CO + Infra
Bascule VPN (DR-03) Trimestriel Redémarrer strongSwan, vérifier reconnexion Infra
Rotation credentials (DR-04) Annuel Changer PIN, redéployer backend CO + Backend

6. Contacts d'urgence

Rôle Contact Disponibilité
Crypto Officer principal [À définir] Heures ouvrées
Crypto Officer backup [À définir] Astreinte
Infra Admin [À définir] Astreinte
Support AWS CloudHSM AWS Support (Business/Enterprise) 24/7