为什么我的 vpc 内部的 lambda 可以被 vpc 外部的 lambda 访问?

Why my lambda inside vpc can be accessed by lambda from outside vpc?

我已经在 AWS 中创建了一个 VPC。这是一个专用网络,互联网上没有人可以访问此 VPC。然后我将我的 lambda 放入这个 VPC 中。在那之后,我发现我可以从 VPC 之外的另一个 lambda 调用我的 lambda。我还可以从本地笔记本电脑调用 lambda。

这是故意的吗?

是的,因为您通过连接到 AWS public endpoint for the AWS lambda 来调用 lambda。因此,只要您的笔记本电脑和 VPC 外部的功能具有互联网连接和在 VPC 中调用您的功能的权限,您就可以调用它。

“放置”一个 lambda function into VPC 不会使其成为“私人”。相反,它允许您的函数访问 VPC 中的私有资源,例如 RDS 中的数据库。

Lambda 函数未放置“到”VPC 中。相反,他们通过弹性网络接口 (ENI) 连接 到 VPC。

AWS Lambda 服务 本身在 VPC 之外运行(在 AWS 服务器上的容器中)。要调用 AWS Lambda 函数,您向 AWS Lambda 服务发送 API 请求,并且该 API 的端点位于 public Internet 上。但是,当 Lambda 函数运行时,它连接到 VPC,并且连接到 Internet。

它类似于 Amazon EC2 - 您可以从可在 Internet 上访问的 Amazon EC2 服务 请求 EC2 实例,但 EC2 实例本身仅与 VPC 通信.