Trois solutions de contournement à considérer avant git commit
votre mot de passe
GitHub est pratique. Vous pouvez gérer votre propre code source gratuitement. Cependant, avec le plan gratuit, le code source sera publié dans le monde entier. Avec un forfait payant, vous pouvez garder le code source privé pour 7 dollars américains par mois, mais c'est assez cher, donc je pense que peu de gens paient pour cela.
Lors de l'écriture d'un programme qui accède à des ressources externes, je suis invité à écrire le mot de passe dans config. Mais pensez aux événements passés. L'autorité pour créer un serveur cloud est de l'argent. Il y a eu plusieurs cas au Japon où des instances EC2 ont été abusées à des fins d'extraction BitCoin. Est-il vraiment correct d'écrire ce mot de passe dans la configuration?
Dans cet article, nous examinerons les techniques pour bien gérer les mots de passe sans s'engager dans git.
Amazon Web Service fournit des commandes aws pour faciliter l'utilisation de chaque service localement. Si vous l'utilisez, essayez de taper la commande suivante. chat ~ / .aws / informations d'identification
>>> cat ~/.aws/credentials
[default]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXZQ
aws_secret_access_key = XXXXXXXXXXXXXXXXXX8a
Il est enregistré avec un mot de passe brut. Pourquoi? En effet, le simple fait de chiffrer cela ne fera qu'obscurcir et garantir la sécurité. En effet, même s'il est chiffré et enregistré localement, il est déchiffré et envoyé à portée de main au stade de la communication avec AWS et de l'envoi d'une commande, de sorte que techniquement, tout le monde peut facilement le déchiffrer, il est donc logique de le chiffrer. Il n'y a pas.
~ / .aws / credentials
Il semble qu'il puisse être géré en toute sécurité en utilisant ʻexport AWS_CONFIG_FILE = ~ / path / to / aws.confg` et des variables d'environnement. (J'ai appris par un expert interne!)
Référence: HowTo: Install AWS CLI --Security Credentials
J'ai répertorié trois méthodes: comment utiliser la bibliothèque pit, comment utiliser .gitignore et comment écrire le mot de passe dans la variable d'environnement.
pit est une bibliothèque de gestion de compte bien connue. La bibliothèque existe en Python Ruby perl. En python, le mot de passe brut est enregistré dans ~ / .pit / default.yaml
.
install
pip install pit
export EDITOR="vim"
Exemple d'utilisation,a.py
# -*- coding: utf-8 -*-
from pit import Pit
token = Pit.get('hipchat_v1',
{'require': {'token': 'your hipchat access token API v1'}})
print(token)
La première fois que vous l'exécutez, Vim démarrera et vous serez invité à entrer votre mot de passe. Le mot de passe que vous entrez est enregistré dans ~ / .pit / default.yaml
.
À partir de la deuxième fois, les résultats suivants seront renvoyés après la saisie du mot de passe.
Résultat d'exécution
>>>python a.py
{'token': 'your token'}
Définissez password.py sur le serveur, définissez-le sur .gitignore et lisez le fichier de configuration.
password.py
# -*- coding: utf-8 -*-
PASSWORD = "HOGEHOGE"
production_config.py
# -*- coding: utf-8 -*-
from password.password import *
print(PASSWORD)
Résultat d'exécution
>>> python production_config.py
HOGEHOGE
Il s'agit d'une méthode permettant de définir un mot de passe dans la variable d'environnement et de le lire avec la commande os.env. Pour plus de commodité, vous gérerez votre mot de passe avec .bash_profile
.
Réglage du mot de passe
export PASSWORD="aiueo"
production_config.py
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import os
print(os.environ.get('PASSWORD'))
Résultat d'exécution
>>> python production_config.py
aiueo