【问题标题】:AWS Lambda: Is it secure to store data on AWS Lambda local Disk?AWS Lambda:将数据存储在 AWS Lambda 本地磁盘上是否安全?
【发布时间】:2016-05-12 23:23:28
【问题描述】:

我有以下关于 AWS Lambda 服务的基本安全相关问题:

  1. 例如,如果我尝试将数据存储在本地磁盘上,AWS Lambda 会将数据存储在哪里?
  2. 是否可以加密 Lambda 上的数据?

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    对 Lambda 函数的 /tmp 的一个重要旁注是 Lambda 函数容器被重复使用并且暂存空间并不总是被删除。如果调用使用了因先前调用而启动的容器(如果您快速连续执行几个 Lambda 函数会发生这种情况),则暂存空间是共享的。

    这曾经把我的功能搞砸了。

    【讨论】:

    • 澄清一下,对于后续调用您的函数,它并不总是被删除。你不会在那里找到其他人的数据。
    • @Luc Hendriks 如何清理 tmp 文件夹?
    • 您可以只删除文件。如果你使用 node js,你可以使用fs.readdir 来获取 tmp 文件夹中的所有文件,然后为每个文件做一个fs.unlink 例如。您还可以生成一个子进程并执行以下操作(它应该作为一个单行器工作,但您想拆分需求并使其异步):require('child_process').execSync('rm -rf /tmp')
    【解决方案2】:

    我将临时数据存储在我的 lambda 函数中,从来没有任何问题。

    • 将您的数据存储在 /tmp 中,您可能无法访问其他目录
    • 临时数据(顾名思义)仅适用于 lambda 调用
    • 如果数据是敏感数据,请对其进行加密(如果默认情况下没有为该语言提供加密库,请确保将库打包)

    【讨论】:

      【解决方案3】:

      存储在 Lambda 本地卷上的文件应仅用于临时短期存储,不应期望在单个 Lambda 函数调用的生命周期之后持续存在。

      如果您需要长期存储数据,请使用 DynamoDB 等数据库或使用 Amazon S3。

      如果您必须将数据存储在本地卷上,您可以对其进行加密,但您必须自己进行。另外,请注意,下次调用该函数时,数据很可能会消失。

      【讨论】:

      • 感谢您的快速响应,是的,如果在下一次函数调用时删除数据就可以了,因为它是临时的。我们是否知道 Lambda 的本地磁盘在 S3 等下面的位置?
      • 很可能是 EBS 卷,但也可能是 EC2 实例存储(即 EC2 实例的本地硬盘驱动器)。它不会是 S3。
      【解决方案4】:

      如果您通过“安全”询问谁可以访问数据,那么答案是任何可以调用 lambda 的人。如果你通过“安全”还怀疑它是否是持久存储,那么答案是否定的。 Lambda 函数只能访问临时的 /tmp 文件夹。不能保证对同一个 lambda 函数的两次连续调用将在同一台物理机器上执行。但是,如果该函数在短时间内被调用两次,则它可以在同一台机器上执行,然后第一次调用保存的文件可能可供第二次调用使用。如果您选择使用此临时文件存储,您还应该知道有一些limitations 可以存储多少数据。

      【讨论】:

      • 感谢您的信息。所以如果我理解正确,任何其他 Lambda 都可以查看 /tmp 目录?这感觉很奇怪,因为任何人都可以删除或读取数据(如果是这样的话)。让我再问一个问题。 Lambda 如何使用 RAM,例如,如果我分配 1024 RAM(通过 Web UI)并平均在 1-10 秒内启动 5-7 个 Lambda 函数(S3 将启动 Lambda 函数),这个 RAM 是否在所有 Lambda 函数之间分配,还是每个 Lambda 函数都会分配 1024 个 RAM?
      • @obaid 否,“每个 Lambda 函数在其自己的 /tmp 目录中接收 500MB 的非持久磁盘空间。” (强调我的,从Lambda FAQ复制)。对 Lambda 函数的每个请求都会有自己的内存分配,否则它不会向外扩展。替代方案(针对特定 Lambda 的所有请求的固定内存预算)没有意义。这样的解决方案意味着当流量增加到不可避免地抛出内存不足异常的点时,每个请求将获得越来越少的内存。
      【解决方案5】:

      Lambda 将数据存储在 lambdas \tmp 文件夹中。

      并且 lambda 上的存储数据不安全

      原因是当 lambda 函数完成执行时,它将删除所有数据位于\tmp 文件夹中
      解决方案在终止 lambda 函数或完成脚本之前从 \tmp 文件夹 aws s3 bucket 移动数据。

      【讨论】:

        猜你喜欢
        • 2020-11-11
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        • 2021-08-21
        相关资源
        最近更新 更多