从Lambda Securely查询AWS RDS

问题描述 投票:1回答:1

我正在尝试将我的Lambda连接到RDS,就像学习练习一样。目前,所有资源都是通过CloudFormation创建的,如果可能,我希望继续这样做。

我的问题是来自https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html的以下声明,详细说明了如何连接。

A second file contains connection information for the function.

    Example rds_config.py

    #config file containing credentials for RDS MySQL instance
    db_username = "username"
    db_password = "password"
    db_name = "ExampleDB" 

AWS正在制作的声明使我看起来应该将这些值硬编码到一个似乎不安全的文件中。我可以尝试使用环境变量,但我认为会出现同样的问题。

如果有人有任何关于如何安全地连接lambda到rds的建议我会非常感激!!!

aws-lambda amazon-rds aws-kms
1个回答
1
投票

如果您不想出于任何原因使用环境变量,可以让Lambda函数为您查询AWS Systems Manager Parameter Store

所以,假设一旦你的函数被触发,你可以只查询SSM到get所需的参数,然后将它传递给你的RDS连接。

请记住,如果您的Lambda还需要Internet访问(在这种情况下确实如此,因为它需要访问SSM),您需要为其附加2个子网:私有和公共。私有路由器将流量路由到RDS,公众将流量路由到其他AWS服务/或互联网。

但是,设置环境变量最容易让你离开。

编辑:如果您需要快速启动,请检查this回答我在哪里通过创建包含公共和私有子网的VPC的OP。

编辑2:好消息。 AWS已经在不久前发布了针对SSM的VPC端点。因此,您的Lambda将不再需要通过Internet,您只需点击该VPC端点即可。你可以在official docs看到它

© www.soinside.com 2019 - 2024. All rights reserved.