Je souhaite gérer des informations secrètes avec une application python. Cette fois, les informations secrètes sont gérées par yaml. Pour le chiffrement et le déchiffrement, utilisez le [service de gestion des clés] de GCP (https://cloud.google.com/kms?hl=ja). Décryptez-le avec une application python afin de pouvoir l'utiliser.
Créez un lien clé et une clé en vous reportant à Démarrage rapide.
Tout d'abord, créez un fichier yaml contenant des informations secrètes
sample_secret.yaml
HOGE_SECRET: HOGEHOGE
FUGA_SECRET: FUGAFUGA
Cryptez ceci comme suit et créez sample_secret.yml.encrypted
gcloud kms encrypt --location global --keyring test --key quickstart
--plaintext-file sample_secret.yml
--ciphertext-file sample_secret.yml.encrypted
Lorsque vous l'utilisez dans une application Python, procédez comme suit.
f = open("/path/to/sample_secret.yml.encrypted", "rb")
client = kms_v1.KeyManagementServiceClient()
name = client.crypto_key_path_path(
'YOUR_PROJECT',
'global',
'test',
'quickstart'
)
res = client.decrypt(name, f.read())
data = yaml.load(res.plaintext, Loader=yaml.BaseLoader)
print(data)
Le fichier secret chiffré doit être géré par git et le fichier non chiffré doit être ciblé par .gitignore.
Recommended Posts