La gestion des données sensibles telles que les clés API, les jetons et les informations d'identification dans divers environnements peut s'avérer assez délicate, en particulier lors du développement et du déploiement d'applications. S'assurer que les secrets sont stockés en toute sécurité et récupérés en cas de besoin, sans les coder en dur dans le contrôle de version, est crucial pour maintenir la sécurité.
C'est pourquoi j'ai créé Secrets Loader, un script Bash qui récupère dynamiquement les secrets d'AWS SSM et de CloudFormation directement dans votre fichier .env, rendant le développement et le déploiement locaux plus faciles, plus sûrs et plus efficaces.
Secrets Loader est un outil simple conçu pour récupérer automatiquement les secrets d'AWS SSM Parameter Store et des sorties AWS CloudFormation en fonction de la syntaxe personnalisée de votre fichier .env. Il remplace les espaces réservés par de véritables secrets sans jamais exposer d'informations sensibles dans le contrôle de version.
Par exemple, au lieu de coder en dur vos clés API ou vos informations d'identification, vous les définissez dans votre fichier .env comme ceci :
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Avec une seule commande, Secrets Loader récupérera les valeurs réelles d'AWS et mettra à jour votre fichier .env, gardant les informations sensibles sécurisées et faciles à gérer.
Lors du développement et du déploiement local, je me suis retrouvé face à des informations d'identification sensibles que je ne voulais pas coder en dur dans les fichiers du projet. Ayant beaucoup utilisé les services AWS, je cherchais un moyen d'intégrer la gestion des secrets dans mon flux de développement existant sans trop de tracas.
Voici les principaux défis résolus par Secrets Loader :
Secrets Loader est livré avec quelques fonctionnalités clés qui en font un outil pratique pour les environnements de développement et de production locaux :
La magie de Secrets Loader réside dans sa capacité à récupérer des secrets depuis AWS en fonction de préfixes spécifiques (ssm: et cf:). Voici un exemple de flux de travail :
Ajoutez des espaces réservés pour vos secrets dans votre fichier .env en utilisant le préfixe ssm: pour les paramètres SSM ou le préfixe cf: pour les sorties CloudFormation :
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
Utilisez la commande suivante pour exécuter le script et récupérer les secrets :
./secrets.sh
Après avoir exécuté le script, votre fichier .env sera mis à jour avec les valeurs réelles extraites d'AWS :
THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-access-key-value
Plus de secrets de codage en dur et plus de recherches manuelles !
Prêt à commencer ? Voici comment configurer Secrets Loader dans votre projet :
git clone https://github.com/Thavarshan/secretst-loader.git cd secretst-loader
chmod x secrets.sh
Si l'AWS CLI n'est pas installée, suivez le guide d'installation de l'AWS CLI. Après l'installation, configurez vos informations d'identification AWS :
aws configure
Utilisez les préfixes ssm: et cf: pour définir d'où doivent provenir les secrets :
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Prenons un exemple simple :
# Application settings APP_NAME=MyApp APP_ENV=production # Secrets fetched from AWS SSM and CloudFormation THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
./secrets.sh
# Application settings APP_NAME=MyApp APP_ENV=production # Fetched secrets THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-secret-access-key
Si vous rencontrez des problèmes lors de l'utilisation de Secrets Loader, voici quelques points à vérifier :
Autorisations AWS : assurez-vous que l'AWS CLI est correctement configurée et que votre rôle ou utilisateur IAM dispose des autorisations suffisantes pour accéder aux secrets AWS SSM et CloudFormation.
Erreurs de syntaxe : revérifiez la syntaxe de votre fichier .env pour vous assurer que les préfixes ssm: et cf: sont corrects.
Erreurs de script : si le script ne parvient pas à récupérer certains secrets, il enregistrera les avertissements mais continuera à récupérer les autres. Consultez les journaux pour détecter tout message d'erreur et assurez-vous que les ressources AWS existent et sont accessibles.
Le script est conçu pour être extensible. Si vous souhaitez intégrer d'autres systèmes de gestion des secrets (comme Azure Key Vault ou HashiCorp Vault), vous pouvez facilement modifier le script pour prendre en charge de nouveaux préfixes et une logique de récupération.
Par exemple, vous pouvez ajouter un préfixe azkv: pour récupérer les secrets d'Azure Key Vault et gérer la récupération à l'aide d'Azure CLI.
Secrets Loader est open source et les contributions sont toujours les bienvenues ! Si vous souhaitez ajouter des fonctionnalités, corriger des bugs ou suggérer des améliorations, n'hésitez pas à :
Si vous en avez assez de gérer manuellement les secrets dans tous les environnements, Secrets Loader est un outil simple et efficace pour rationaliser le processus. En récupérant les secrets de manière dynamique depuis AWS SSM et CloudFormation, vous pouvez gérer vos informations d'identification en toute sécurité sans risquer d'être exposé au contrôle de version.
Découvrez le projet sur GitHub, essayez-le, et si vous le trouvez utile, donnez-nous un ⭐ sur GitHub ! Votre soutien aide le projet à se développer et nous serions ravis d'entendre votre commentaires ou consultez vos contributions à son développement continu.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3