0

这个问题的总体目的与Disable AWS Lambda Environment Variables有一些相似之处,但主要针对网络访问。

我想为第三方提供调用我的 Lambda 函数的能力。第三方将自己的数据提交给 Lambda 函数(通过有效负载,或通过指定数据位置,例如 S3 存储桶)。

我希望 Lambda 服务能够向第三方保证他们提供的数据没有从 Lambda 进程泄露到其他任何地方。为了做到这一点,至少第三方必须保证 Lambda 函数没有连接到 Internet 上的其他资源并将数据泄露给它。

假如说

  • 我正在提供将对敏感数据进行操作的代码
  • 第三方无法检查该代码,并且
  • 第三方信任亚马逊,但不信任我

有什么方法可以通过 Lambda(可能与其他 AWS 产品结合使用)来实现这一点?我已经研究了使用网关、EC2、静态加密、S3 和所有这些的自定义权限的解决方案,但没有找到解决方案。

4

2 回答 2

1

您可以在 VPC 中创建 lambda 方法并对其进行保护。阅读此https://forums.aws.amazon.com/thread.jspa?messageID=733719 他们遇到了问题,因为他们无法访问互联网

于 2017-05-03T15:18:14.313 回答
1

您可以提供的唯一“证明”是外部可信第三方(不是 AWS)的形式,该第三方已经审核了您的环境、实践和策略,并确保他们满意您能够正确处理敏感数据.

客户——无论出于何种原因——不愿意相信你处理他们的数据,同时又不经授权略读其中的一些……同时你可能不想简单地将你的代码许可给他们,这样他们就可以在环境中运行它这让他们满意。

这些都不是技术问题。这些都是信任问题。

我不完全确定您是否考虑过真正孤立的环境的真正含义。显然,您将无法查阅任何数据库……而且,它必然会被剥夺任何日志记录功能。 console.log(data.super_secret);. 来自 Lambda 函数的日志离开 Lambda 环境并传送到 CloudWatch。

假设无论出于何种原因您仍然不相信,总会有DNS Tunneling。这种邪恶方案的美妙之处在于,即使您没有 Internet,您也永远不会与 VPC 中的 DNS 解析隔离。位于 169.254.169.253 的 DNS 解析器始终存在,可以帮助侦听,不受安全组的影响,不受网络 ACL 的影响,不受默认路由的影响。您想偷偷地将数据从“孤立”的环境中偷走?完毕。

在任何情况下,AWS 都不保证您的配置的安全性——他们只承担保护其基础设施本身的责任。他们向您保证,它与您配置的一样安全……但是如何配置它取决于您。他们称之为共享安全模型:

虽然 AWS 管理云的安全性,但云中安全性是客户的责任。客户可以控制他们选择实施的安全措施来保护他们自己的内容、平台、应用程序、系统和网络,这与他们在现场数据中心中的应用程序没有什么不同。

在此处输入图像描述

https://aws.amazon.com/compliance/shared-responsibility-model/

于 2017-05-03T23:45:33.713 回答