Un gestionnaire de secrets est un outil permettant de stocker et de gérer vos mots de passe, clés API, informations d'identification de base de données et autres types de données sensibles dont votre application a besoin.
Les secrets codés en dur dans les codes sources des applications ou stockés dans des fichiers en texte brut pour que vos codes les consomment peuvent être exploités par des entités malveillantes qui peuvent inspecter les applications ou les composants de votre système. Ce risque peut être atténué grâce aux gestionnaires de secrets.
dotenv-vault est l'un de ces gestionnaires de secrets qui offre une alternative plus sûre à la mise en code de vos secrets.
[!Note]
Il ne s'agit pas d'un didacticiel sur l'utilisation de dotenv-vault. L'objectif de ce document est d'expliquer comment un gestionnaire de secrets peut aider les développeurs à éviter de coder en dur les secrets ou de les stocker dans des fichiers en texte brut. Vous pouvez apprendre comment démarrer avec dotenv-vault ici.
Disons que je dispose d'informations sensibles sur un personnage particulier du film Star Wars : Épisode V et que je souhaite que mon programme utilise ces informations.
def spoiler(): spoiler = "Darth Vader is Luke Skywalker's father" return { "spoiler": spoiler }
Au lieu de coder en dur les informations, je les écrirais sous forme de variable d'environnement dans le fichier .env :
SPOILER="Darth Vader is Luke Skywalker's father"
Avec dotenv-vault, mon programme est capable d'accéder aux informations sensibles en utilisant la variable d'environnement.
import os from dotenv_vault import load_dotenv load_dotenv() # Take environment variables from .env def spoiler(): spoiler = os.getenv("SPOILER") # Get the secret return { "spoiler": spoiler }
Ensuite, je chiffre la variable d'environnement en synchronisant le fichier .env. Une fois la synchronisation terminée, une donnée appelée DOTENV_KEY peut être générée. Cette sortie peut être lue par mon programme en tant que variable d'environnement en production.
DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production' python main.py
En conséquence, mon application de production peut accéder au secret.
{ "spoiler": "Darth Vader is Luke Skywalker's father" }
Il existe une variété de solutions de gestion des secrets disponibles. Chaque gestionnaire de secrets présente ses propres avantages et inconvénients. Choisissez l'option qui correspond le mieux aux exigences de votre organisation.
Liste des gestionnaires de secrets alternatifs :
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