Gestion des Secrets : Protéger les Clés de Votre Royaume
Chaque système a des secrets : clés API, identifiants de base de données, certificats TLS, clés de chiffrement, tokens OAuth. La façon dont vous les gérez détermine si une seule compromission se propage en brèche totale. La gestion des secrets n'est pas un choix d'outil -- c'est une discipline architecturale.
Taxonomie des Types de Secrets
Secrets
├── Identifiants
│ ├── Mots de passe BDD
│ ├── Clés de comptes de service
│ ├── Clés SSH
│ └── Clés / tokens API
├── Certificats
│ ├── Certificats TLS/SSL
│ ├── Certificats clients mTLS
│ ├── Certificats de signature de code
│ └── Clés privées CA
├── Clés de Chiffrement
│ ├── Clés de chiffrement des données (DEK)
│ ├── Clés de chiffrement de clés (KEK)
│ └── Clés maître KMS
├── Tokens
│ ├── Tokens OAuth access/refresh
│ ├── Clés de signature JWT
│ └── Secrets webhook
└── Secrets de Configuration
├── Chaînes de connexion
├── Identifiants SMTP
└── Clés de licence
Comparaison des Outils
| Capacité | HashiCorp Vault | AWS Secrets Manager | GCP Secret Manager | SOPS |
|---|---|---|---|---|
| Type | Plateforme complète | Service managé | Service managé | Chiffrement fichiers |
| Secrets dynamiques | Oui | Non | Non | Non |
| Rotation auto | Oui (intégrée) | Oui (via Lambda) | Oui (Cloud Functions) | N/A |
| Multi-cloud | Oui | AWS uniquement | GCP uniquement | Oui |
| Compatible GitOps | External Secrets Operator | External Secrets Operator | External Secrets Operator | Natif |
| Complexité | Haute | Basse | Basse | Basse |
Patterns de Rotation
| Pattern | Description | Fréquence | Risque de Coupure |
|---|---|---|---|
| Rotation manuelle | Humain change le secret, met à jour les consommateurs | Ad-hoc | Élevé |
| Rotation planifiée | Job automatisé sur une cadence | 30-90 jours | Faible |
| Secrets dynamiques | Secret généré par session, auto-expire | Par requête | Aucun |
| Rotation double-secret | Deux versions actives, rotation alternée | Continue | Aucun |
| Zero-standing-secrets | Pas de secrets persistants, génération JIT via OIDC | Par requête | Aucun |
Catalogue d'Anti-Patterns
| Anti-Pattern | Pourquoi c'est Dangereux | Que Faire à la Place |
|---|---|---|
| Secrets dans le code source | Fuites via historique git, forks, logs | Utiliser un gestionnaire de secrets, scanner avec truffleHog |
| Secrets en variables d'environnement | Visibles dans les listings de processus | Monter en fichiers, utiliser CSI driver ou sidecar |
| Comptes de service partagés | Pas d'attribution, rotation impossible | Identité par service, credentials éphémères |
| Clés API à longue durée | Large rayon d'impact si compromis | Secrets dynamiques, fédération OIDC, rotation auto |
| Secrets dans la config CI/CD | Accessibles à quiconque a accès au repo | Auth OIDC vers vault, zéro secret statique |
| Copier-coller de secrets via Slack | Pas de piste d'audit | Utiliser un gestionnaire de secrets avec UI |
Recommandations Stratégiques
Commencez par un scan. Avant de choisir un outil, comprenez votre exposition actuelle. Lancez truffleHog ou gitleaks sur tout votre historique git.
Adoptez la fédération OIDC. Les plateformes CI/CD modernes (GitHub Actions, GitLab CI) supportent les tokens OIDC qui s'authentifient directement auprès des fournisseurs cloud et de Vault -- éliminant totalement les secrets statiques de CI/CD.
Les secrets dynamiques sont l'objectif final. Les secrets dynamiques de Vault (identifiants BDD générés par pod, expirés après TTL) éliminent totalement le problème de rotation.
Chiffrez les secrets dans git pour le GitOps. SOPS avec age ou cloud KMS permet de stocker des secrets chiffrés à côté du code applicatif.
Ressources
- Documentation HashiCorp Vault
- Bonnes Pratiques AWS Secrets Manager
- OWASP Secrets Management Cheat Sheet
- Mozilla SOPS
:::