【发布时间】:2016-05-12 23:23:28
【问题描述】:
我有以下关于 AWS Lambda 服务的基本安全相关问题:
- 例如,如果我尝试将数据存储在本地磁盘上,AWS Lambda 会将数据存储在哪里?
- 是否可以加密 Lambda 上的数据?
谢谢
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda
我有以下关于 AWS Lambda 服务的基本安全相关问题:
谢谢
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda
对 Lambda 函数的 /tmp 的一个重要旁注是 Lambda 函数容器被重复使用并且暂存空间并不总是被删除。如果调用使用了因先前调用而启动的容器(如果您快速连续执行几个 Lambda 函数会发生这种情况),则暂存空间是共享的。
这曾经把我的功能搞砸了。
【讨论】:
fs.readdir 来获取 tmp 文件夹中的所有文件,然后为每个文件做一个fs.unlink 例如。您还可以生成一个子进程并执行以下操作(它应该作为一个单行器工作,但您想拆分需求并使其异步):require('child_process').execSync('rm -rf /tmp')
我将临时数据存储在我的 lambda 函数中,从来没有任何问题。
【讨论】:
存储在 Lambda 本地卷上的文件应仅用于临时短期存储,不应期望在单个 Lambda 函数调用的生命周期之后持续存在。
如果您需要长期存储数据,请使用 DynamoDB 等数据库或使用 Amazon S3。
如果您必须将数据存储在本地卷上,您可以对其进行加密,但您必须自己进行。另外,请注意,下次调用该函数时,数据很可能会消失。
【讨论】:
如果您通过“安全”询问谁可以访问数据,那么答案是任何可以调用 lambda 的人。如果你通过“安全”还怀疑它是否是持久存储,那么答案是否定的。 Lambda 函数只能访问临时的 /tmp 文件夹。不能保证对同一个 lambda 函数的两次连续调用将在同一台物理机器上执行。但是,如果该函数在短时间内被调用两次,则它可以在同一台机器上执行,然后第一次调用保存的文件可能可供第二次调用使用。如果您选择使用此临时文件存储,您还应该知道有一些limitations 可以存储多少数据。
【讨论】:
Lambda 将数据存储在 lambdas \tmp 文件夹中。
并且 lambda 上的存储数据不安全
原因是当 lambda 函数完成执行时,它将删除所有数据位于\tmp 文件夹中
解决方案在终止 lambda 函数或完成脚本之前从 \tmp 文件夹 aws s3 bucket 移动数据。
【讨论】: