【发布时间】:2020-07-13 07:43:54
【问题描述】:
我正在尝试加密我的 postgres 连接字符串变量。
db_host = os.environ.get('db_host')
db_port = os.environ.get('db_port')
db_name =os.environ.get('db_name')
db_user =os.environ.get('db_user')
db_pass =os.environ.get('db_pass')
如您所见,我使用了环境变量,但我想对其进行加密。
我想出了一种加密方法,同时也在检查一种解密方法。
Lambda 函数建议使用以下代码。
import boto3
import os
from base64 import b64decode
ENCRYPTED = os.environ['db_host']
# Decrypt code should run once and variables stored outside of the function
# handler so that these are decrypted once per container
DECRYPTED = boto3.client('kms').decrypt(
CiphertextBlob=b64decode(ENCRYPTED),
EncryptionContext={'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']}
)['Plaintext'].decode('utf-8')
def lambda_handler(event, context):
# TODO handle the event here
pass
问题:
-
我可以将它包含在包含我的 lambda 函数的同一个 .py 文件中吗?
-
这显示了单个变量的解密。我有多个变量,我该如何实现,以便一次性解密所有变量?
EncryptionContext={'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']} )['明文'].decode('utf-8')
什么是{'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']}
【问题讨论】:
标签: python-3.x amazon-web-services encryption lambda