Mysql 安全地向AWS Lambda函数提供AWS RDS凭据的最佳方法是什么?
我正在使用AWS codepipeline创建一个CI/CD管道,以部署几个lambda函数。目前,我正在手动上载lambdas函数的.zip文件,其中包括一个configuration.json文件,该文件具有访问RDS数据库的凭据 我已经创建了一个SAM模板,用于通过codepipeline部署lambda函数,但是,我想不出一个向lambda函数提供RDS数据库凭据的解决方案,因为在代码存储库中提交configuration.json文件不是一个选项Mysql 安全地向AWS Lambda函数提供AWS RDS凭据的最佳方法是什么?,mysql,database,amazon-web-services,aws-lambda,amazon-rds,Mysql,Database,Amazon Web Services,Aws Lambda,Amazon Rds,我正在使用AWS codepipeline创建一个CI/CD管道,以部署几个lambda函数。目前,我正在手动上载lambdas函数的.zip文件,其中包括一个configuration.json文件,该文件具有访问RDS数据库的凭据 我已经创建了一个SAM模板,用于通过codepipeline部署lambda函数,但是,我想不出一个向lambda函数提供RDS数据库凭据的解决方案,因为在代码存储库中提交configuration.json文件不是一个选项 AWS secrets manager
AWS secrets manager不是我的选择,因为它会非常昂贵,因为数以百万计的API调用会命中lambda函数。您可以在一些蓝图上使用AWS给出的建议之一。我从slack echo notification中获取了这个示例,并在我的一些lambda函数中使用了它。 要加密您的机密,请使用以下步骤:
希望这对您有所帮助,您可以在一些蓝图上使用AWS提供的建议之一。我从slack echo notification中获取了这个示例,并在我的一些lambda函数中使用了它。 要加密您的机密,请使用以下步骤:
希望这有助于使用KMSSecrets Manager的Parameter Store与Parameter Store相比还有一个额外的优势,即它提供了与MySQL RDS.IAM数据库身份验证兼容的凭据轮换功能?1)您不必为每个请求调用Secrets Manager,只在需要建立连接时才调用它(如果你为每一个请求建立新的连接,你会很快发现你有更糟糕的问题。)2)给secrets manager打1000000个电话需要5美元。如果这真的是一个财务问题,那么你可能会被AWS惊醒。KMSSecrets Manager的参数存储比参数存储有一个额外的优势,即它提供了与MySQL RDS.IAM数据库身份验证兼容的凭据旋转功能?1)你不会为每个请求调用Secrets Manager,你只在需要建立连接时才调用它(如果你为每个请求建立新连接,你会很快发现你有更严重的问题)。2)1000000次呼叫secrets manager需要花费5美元。如果这真的是一个财务问题,那么你可能会被AWS惊醒。 import boto3 import json import logging import os from base64 import b64decode from urlparse import parse_qs ENCRYPTED_EXPECTED_TOKEN = os.environ['kmsEncryptedToken'] kms = boto3.client('kms') expected_token = kms.decrypt(CiphertextBlob=b64decode(ENCRYPTED_EXPECTED_TOKEN))['Plaintext'] logger = logging.getLogger() logger.setLevel(logging.INFO)