为什么 API GW 可以访问私有 VPC 中的 lambda?

问题描述 投票:0回答:3

我是 AWS 新手,很难理解他们如何布局组件,尤其是在网络和访问方面。

在本例中,我正在玩弄 API GW 和“hello world”lambda。我制作了 lambda(无 VPC)并将其连接到 API GW,现在我有了一个可公开访问的 lambda。我不明白为什么 lambda 可以在不位于 VPC 中的情况下调用,但我最终在文档中偶然发现了这个解释:https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc。 html#vpc-internet

默认打开似乎很奇怪,但没关系。

所以,现在我尝试通过网络相关配置关闭 API。因此,我创建了一个 VPC 和私有子网(没有 IGW,不能公开访问),并将 lambda 放入其中。我确信它将不再可访问,因为这就是 VPC 和网络的工作方式,但 lambda 仍然可以公开访问!为什么?

API GW 无权访问该 VPC,并且无论如何,该 VPC 都无法访问互联网。这些组件交互的方式似乎没有意义。这是怎么回事?

amazon-web-services aws-lambda amazon-vpc
3个回答
1
投票

我的错误是认为 lambda 可以“放入”VPC。相反,他们只能访问VPC:

配置 Lambda 函数以访问 VPC 中的资源

您可以配置 Lambda 函数以连接到您的 AWS 账户中 Virtual Private Cloud (VPC) 中的私有子网。

https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html

所以我所有关于 VPC 逻辑的评论都不适用,这就是为什么我的 lambda 可以公开访问。

此外,如果这对其他人有帮助:

我最初有一个误解,认为所有AWS组件基本上都是服务器,它们都需要放在VPC中。此模式

不适用于

无服务器组件! (包括 S3、lambda、dynamoDB 等)它们在自己的领域运行,这些无服务器组件的目的是(主要)抽象出网络细节等内容。相反,他们倾向于通过其他方法控制访问,例如 IAM 策略、安全组、“集成”等


0
投票


-2
投票
Internet 网关

Nat 网关。检查 LAMDA 连接到的实际 VPC,有时多个可能会造成混淆,最后还要检查 VPC 端点

© www.soinside.com 2019 - 2024. All rights reserved.