如何为 AWS RDS 凭证创建配置文件并将其导入我的 AWS Lambda API?

Posted

技术标签:

【中文标题】如何为 AWS RDS 凭证创建配置文件并将其导入我的 AWS Lambda API?【英文标题】:How can I create a config file for AWS RDS credentials and import them in my AWS Lambda APIs? 【发布时间】:2020-07-25 17:54:11 【问题描述】:

抱歉,如果我是 AWS 新手,这个问题看起来太简单了。我需要帮助创建一个配置文件,我可以在其中存储我的 RDS 凭证并将此文件导入我的 Lambda 函数中,而不是在每个函数中写入凭证。 Lambda API 使用以下凭证连接到 RDS:

#rds settings
rds_host  = "<host url>"
name = '<host name>'
password = '<host password>'
db_name = '<name of the schema being used>' 

我想将此信息放入配置文件中,但我无法弄清楚在 AWS 中放置此配置文件的位置以及如何导入它。我想配置它的原因是,如果我更改凭据,我希望它们反映在我的每个 Lambda 中。

谢谢

【问题讨论】:

【参考方案1】:

将 db 凭据放在 lambda 函数中不是一个好习惯。我建议遵循良好做法并考虑将 db 凭据传递给 lambda 函数的以下方法之一:

    使用 lambda 函数的 environment variables 传递凭据。环境变量甚至可以是 encrypted using KMS 以提高安全性。

    使用SSM Parameter Store 集中存储和管理凭据(免费)。

    使用AWS Secrets Manager 存储和自动轮换数据库凭据(不是免费的)。

    使用IAM Database Authentication for mysql and PostgreSQL,无需使用传统的用户名和密码来访问数据库。

如果您有许多 lambda 函数,则方法 2、3 和 4 最适合。这些方法还解决了更新数据库凭据的问题。

【讨论】:

以上是关于如何为 AWS RDS 凭证创建配置文件并将其导入我的 AWS Lambda API?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 AWS RDS 实例设置数据库时区 [重复]

如何在 aws Secrets Manager 服务中管理 aws RDS(由 cloudformation 创建)的主用户凭证?

Laravel:AWS RDS laravel 中没有表的此类文件或目录

如何为 RDS 配置 Elastic Beanstalk

AWS S3 - 如何为 Android 获取正确的凭证?

如何为 EmrCreateJobFlowOperator 指定配置文件?