【问题标题】:How to disable outbound internet connections on AWS Lambda?如何在 AWS Lambda 上禁用出站互联网连接?
【发布时间】:2019-02-19 13:27:28
【问题描述】:

我正在运行一个敏感的 AWS Lambda 函数,它要求永远不会出站连接到 Internet。但是,lambda 函数使用了几个不可信的第 3 方开源库(可能泄漏数据)。有没有办法完全阻止来自 Lambda 的出站连接?

【问题讨论】:

  • 如果您不介意设置自己的网络配置规则,您可以使用 VPC 来运行您的 lambda
  • 您可以创建一个 VPC 并创建一个安全的 EC2 实例,并停止来自外部的任何传入呼叫以及来自此 ec2 内部任何 lambda 函数的任何传出呼叫。此外,此函数可以修改为仅由选择性 lambda 函数使用,并且仅响应这些函数。
  • @NAVIN 根本不需要 EC2 实例。只需将其放入 VPC 并正确配置安全组即可阻止所有出站流量。
  • @MarkB 我是 AWS 新手,这就是我们实现它的方式。谢谢你告诉我。甚至我也需要知道不同的方法。

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


【解决方案1】:

由于您无法在 AWS Lambda 中配置运行时环境,因此您无法禁用出站连接。不是通过配置,也不是通过您的代码。你有两个选择:

  1. 将函数放在 VPC 中,并部署 NAT 网关。这有点麻烦,还会影响性能,以及您轻松使用 AWS 云服务的能力。你可以在这里阅读更多信息:https://github.com/ittus/aws-lambda-vpc-nat-examples

  2. 更好的选择是使用名为FunctionShield 的免费安全库,它允许您禁用所有出站连接,AWS 云服务除外。它目前支持 Node.js 或 Python(你没有提到你正在使用什么运行时)。 https://www.puresec.io/function-shield

【讨论】:

  • 它不需要 NAT 网关,因为目标是阻止出站 Internet 访问。仅当您想提供出站 Internet 访问时才需要 NAT。
  • 功能盾不再受支持且不推荐用于生产
【解决方案2】:

如果代码根本不需要出站 Internet 访问,请将函数放在 VPC 中的子网中。

如果代码需要出站访问,但它可能仅限于受信任的服务器,请将函数放置在具有到 NAT 网关的路由的私有子网中,所有这些都在启用 Internet 网关的 VPC 中。然后将与 Lambda 关联的安全组中的受信任服务器 IP 列入白名单。

How a compromised NPM package can steal your secrets (POC + prevention).

【讨论】:

    猜你喜欢
    • 2016-09-05
    • 2021-04-01
    • 2016-01-20
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多