Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-10-14 06:15:29460parcourir

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 }

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" }

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!

Déclaration:
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