J'ai une base de données PostgreSQL et j'ai un script qui utilise les données de la base de données pour mettre à jour un site Web. Dans le script, j'ai le code suivant:
conn = psycopg2.connect('dbname=name user=user password=password')
Existe-t-il un moyen meilleur ou plus sécurisé de se connecter à la base de données sans exposer mon mot de passe dans le script?
J'ai le même problème dans Django avec le fichier settings.py.
5 Réponses :
Une façon possible est de stocker votre chaîne de clés dans un répertoire contrôlé par autorisation, et de faire en sorte que votre script lise ce fichier d'informations d'identification pour extraire le nom d'utilisateur et le mot de passe. De cette façon, vous pouvez masquer les informations d'identification de qui peut afficher le script mais qui n'a pas l'autorisation d'accéder au répertoire.
Mettez-le dans une variable, stockez-le dans un module / package, écrivez-le dans votre script:
from *libname* import sqlpassword conn = psycopg2.connect('dbname=name user=user password=sqlpassword')
Vous devez stocker vos identifiants postgresql et ne pas les coder en dur dans des scripts .py. Pour ce faire, je vous propose d'utiliser le module django-decouple
.
Avec ce module, vous pouvez stocker les informations d'identification de votre base de données dans un fichier .env
comme celui-ci
DB_NAME=DB_NAME DB_USER=DB_USER DB_PASSWORD=DB_PASS DB_HOST=localhost DB_PORT=5432
et vous pouvez ensuite l'utiliser dans votre projet python ou django aussi simple que de boire une tasse de thé :)
Liens connexes:
page officielle djang-decouple
https://pypi.org/project/django-decouple/
tutoriel sympa et simple pour apprendre à utiliser django-decouple
https://simpleisbetterthancomplex.com/2015/ 11/26 / package-of-the-week-python-decouple.html
Meilleures salutations.
Ajoutez des informations d'identification dans un fichier JSON sécurisé et chargez ce fichier pour importer des variables dans la fonction psycopg2.connect.
AWS et Databricks disposent d'outils de gestion des secrets vous permettant de stocker votre mot de passe sous forme de secret.