La sécurisation de la clé privée lors du déploiement en production est cruciale pour garantir la confidentialité et l’intégrité de vos secrets. Voici un rapide guide pour sécuriser ce processus dans un environnement de déploiement continu (CI/CD) via Azure, AWS, GCP ou même Gitlab CI/CD sur une app Symfony.
Initialisation du système des secrets
Pour commencer, vous devez initialiser le système de secrets dans votre projet Symfony. Exécutez la commande suivante :
Cette commande crée deux fichiers de clés (public.pem et private.pem) dans le répertoire config/secrets/{env}. Quelques rappels de sécurité importants :
- Séparation des environnements : Gardez vos secrets distincts entre les environnements de développement, de test et de production.
- Sécurité des clés : Protégez les clefs privées private.pem et évitez de les inclure dans votre système de contrôle de version. (Sinon Gitleaks va pas être content.)
- Rotations de secrets : Mettez en place un processus régulier pour la rotation des secrets afin de minimiser les risques en cas de compromission.
La première chose à faire est d’ajouter la clef privée dans le .gitignore
et la stocker dans un de vos environnements de gestion de secrets préférés.
Pour rappel ensuite pour créer des secrets :
Utiliser votre service de gestion des secrets
Utilisez des services de gestion des secrets proposés, par exemple, par les principaux fournisseurs de cloud pour stocker et gérer vos clés privées :
- AWS Secrets Manager,
- Azure Key Vault,
- Google Secret Manager
- …
Ainsi dans votre configuration de CI/CD (exemple avec gitlab) la récupération de la clef est très simple !
Pour en savoir plus, lien vers la doc du CLI AWS.
Pour en savoir plus, lien vers la docu du CLI Azure.
Pour en savoir plus, lien vers la doc du CLI Google Cloud.
Bien sûr si vous avez votre propre gestion de secrets vous pouvez utiliser votre propre solution pour acheminer la clé privée sur vos environnements de prod. Par exemple, si vous les définissez temporairement dans des variables d’environnements
Chiffrer vos clefs privées
D’aucun dirait il n’y a pas de bonnes ou de mauvaises solutions. Mais ici il y a beaucoup de mauvaises solutions. D’ailleurs je vous déconseille de stocker vos secrets non chiffré. Que ce soit dans les services cloud dédiés, ou vos propres solutions.
Il est important de chiffrer tout cela avec une clef privée maître par projet ou par déploiement, en fonction de votre usage. Voir ci-dessous pour le faire simplement.
Laisser un commentaire