Maison >développement back-end >Tutoriel Python >Déplacer les secrets codés en dur vers un Secrets Manager
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]
Ceci n'est pas un tutoriel 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 j'ai des 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 comme une variable d'environnement en production.
DOTENV_KEY='dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=production' python main.py
En conséquence, mon application de production est capable d'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 :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!