Amazon web services 为什么我的vpc内的lambda可以被lambda从vpc外访问?

Amazon web services 为什么我的vpc内的lambda可以被lambda从vpc外访问?,amazon-web-services,aws-lambda,amazon-vpc,Amazon Web Services,Aws Lambda,Amazon Vpc,我已经在AWS中创建了一个VPC。这是一个专用网络,没有任何来自互联网的人可以访问该专有网络。然后我把我的lambda放在这个VPC里。之后,我发现我可以从VPC之外的另一个lambda调用我的lambda。我还可以从本地笔记本电脑上调用lambda 这是有意的吗?是的,因为您通过连接到调用lambda。因此,只要您的笔记本电脑和专有网络之外的功能具有internet连接和在专有网络中调用您的功能的权限,您就可以调用它 放置文件并不意味着它是私有的。相反,它允许您的功能访问专有网络中的私有资源,

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


这是有意的吗?

是的,因为您通过连接到调用lambda。因此,只要您的笔记本电脑和专有网络之外的功能具有internet连接和在专有网络中调用您的功能的权限,您就可以调用它


放置文件并不意味着它是私有的。相反,它允许您的功能访问专有网络中的私有资源,例如RDS中的数据库。

Lambda功能不放在专有网络中。相反,它们通过弹性网络接口ENI连接到VPC

AWS Lambda服务本身在专有网络之外的AWS服务器上的容器中运行。要调用AWS Lambda函数,需要向AWS Lambda服务发送一个API请求,并且该API的端点位于公共Internet上。但是,当Lambda功能运行时,它连接到VPC,而不连接到Internet


它与Amazon EC2类似-您可以从Amazon EC2服务请求一个EC2实例,该服务可在Internet上访问,但是EC2实例本身只与VPC通信。

因此,私有VPC子网内的资源只要具有invokFunction权限,就可以调用lambda函数。要使VPC内的资源调用lambda函数,它们需要访问Internet。这是因为用于与AWS Lambda服务通信的API端点位于Internet上。因此,如果VPC没有Internet网关,则VPC中的资源无法“直接”调用Lambda。但是,也可能有其他方法,例如通过VPC端点将消息推送到Amazon SQS或Amazon SNS。这两种服务都可以代表您触发Lambda功能。如果我在Lambda上附加了专用ENI,它可以访问internet吗?如果AWS Lambda功能附加到VPC,它必须附加到专用子网。只有在公用子网中有NAT网关或NAT实例时,它才能访问Internet。这是否意味着所有lambda都可以访问Internet?有没有办法限制lambda不能访问互联网上的资源?@Joeyizhao如果你将lambda放入专有网络,它将无法访问互联网。否则,您不能限制它。您的Lambda函数是否需要访问专有网络中的资源?如果没有,则不要将其连接到VPC。