VPC 内部 AWS Lambda 与 VPC 外部的混淆

Confusion of AWS Lambda inside VPC vs outside VPC

我的 vpc 私有子网中有一些 EC2 服务器 运行。 我必须在这些 EC2 上执行一些操作任务,例如,向这些 EC2 服务器添加特定标签,或将 IAM 实例配置文件附加到服务器。

为此,我为此任务编写了一个 lambda,并 运行 它。它是成功的。 我只是好奇,我的 lambda(不在我的 vpc 中)如何能够查看我的 vpc 的私有子网内的资源并执行任务。

我在文档中读到,要连接到我们私有子网中的资源,我们需要将 lambda 连接到我们的 vpc。但在这种情况下,我可以使用 lambda 在我的私有 EC2 上进行操作,而无需将它连接到我的 vpc。

我很困惑。

诸如更新标签和附加 IAM 配置文件之类的事情都是通过 AWS API 完成的。 AWS API 不在您的 VPC 网络中,它在 public 互联网上。 Lambda 函数能够以与您能够在个人笔记本电脑上执行这些操作相同的方式执行这些操作,而无需与 VPC 建立 VPN 连接。

在 VPC 中需要 Lambda 函数才能 运行 的东西需要与 VPC 中的服务器 运行 建立直接网络连接,例如 SSH 连接到EC2 服务器或与 RDS 服务器的数据库连接。

VPC 是一个网络组件,只有当它需要通过 ssh、RDP 或 EC2

上的交互 APIs/HTTP(s) 端点访问 OS 时,它才必须用于 lambda

在这种情况下,您的 lambda 函数仅处理 AWS API 使用 AWS STS(在验证 IAM 权限后生成令牌)仅修改标签,并且 AWS APIs可公开访问,您只需要正确的 IAM 角色或访问对即可与之交互。