问题描述:我在Bitbucket中有一个python代码,它被部署到AWS中,作为lambda函数执行。设置基于本指南:https://bitbucket.org/blog/aws-lambda-deployments-using-bitbucket-pipelines-and-pipes
在python代码中,我计划使用凭据(例如用于数据库访问(,而源代码显然是错误的存储位置。
建议的存储位置和向lambda函数传递凭据的方式是什么?
它应该是Bitbucket的存储库变量吗?如果是,那么如何将它们传递给lambda函数的代码?
还是应该是AWS Lambda环境变量?同样的问题。
您可以将它们存储在AWS SSM参数存储中,并在运行时获取它们。
这样你就可以管理谁可以访问它。把它放在env变量中会以明文形式向任何可以看到它的人显示秘密。
我的结构是这样的:
- 将机密放入加密的SSM参数中,这将使用KMS密钥
- 让您的lambda访问SSM参数和通过IAM使用的KMS密钥
- 在lambda ENV或配置文件中,放置SSM参数的路径
- 在lambda中,在启动期间获取参数并将其放入某个静态变量,这样同一(非冷启动(lambda的其他执行就不需要再次获取它