Maison > développement back-end > Tutoriel Python > Déplacer les secrets codés en dur vers un Secrets Manager

Déplacer les secrets codés en dur vers un Secrets Manager

Barbara Streisand
Libérer: 2024-10-14 06:15:29
original
559 Les gens l'ont consulté

Move hardcoded secrets to a 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

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 }
Copier après la connexion

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"
Copier après la connexion

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 }
Copier après la connexion

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

Copier après la connexion

En conséquence, mon application de production est capable d'accéder au secret.

{ "spoiler": "Darth Vader is Luke Skywalker's father" }
Copier après la connexion

Choisissez le gestionnaire de secrets qui vous convient

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 :

  1. Infiscale
  2. Doppler
  3. Coffre HashiCorp
  4. Gestionnaire de secrets AWS
  5. Coffre de clés Azure

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal