Sni*_*192 4 aws-lambda amazon-kms aws-parameter-store
我最近正在准备安全专业考试,我遇到了一个问题,需要选择是使用参数存储来存储可以保存密码的秘密数据库连接 URL,还是在 Lambda 中使用 KMS 加密环境变量。
IMO 环境变量是更可取的,因为否则对于每天调用数千或数十万次的 Lambda 函数来说,这可能会花费大量成本,甚至可能导致达到帐户限制。
此外,每次调用获取参数都会增加延迟,这可能并不重要,但无论如何都会增加。一般来说,我希望看到为 Lambda 环境变量实现的参考语法,以解析为 AWS SSM 参数值,类似于现在为 SSM 和机密管理器为 Cloudformation 实现的语法。
但在那之前,考虑到成本和延迟的增加,为什么 SSM 优于使用 KMS 加密环境变量呢?(这是我在练习考试中看到推荐的)
这篇文章有一些有用的观点:
- 很难跨项目共享配置
- 难以实现细粒度的访问控制
- 【SSM Parameter Store】记录变更历史
因此,使用 SSM 通常是一种更灵活的架构。也就是说,如果这些好处确实不适用于您,那么您仍然可以使用环境变量并减少延迟,正如您所指出的。与其说其中一种方法是错误的,不如说另一种方法通常被认为是一种“架构良好”的方法。但具体情况可能需要其他实施方式。
这篇文章提到了它带来的更好的安全性。
“虽然这种方法(使用环境变量)简单明了,但它存在相当大的安全缺陷 - 秘密以明文形式存在于环境中。进程内运行的任何其他进程、库或依赖项都可以访问已经存在的环境。多次被利用。”
安全性是一个重要的考虑因素,与不太安全的替代方案相比,大多数为提高安全性而采取的措施都会带来延迟或处理成本。
其他一些需要考虑的想法:
| 归档时间: |
|
| 查看次数: |
2720 次 |
| 最近记录: |