Lambda函数访问同一安全组中的EC2实例

问题描述

我正在尝试从配置的lambda函数访问配置了elasticsearch的EC2实例。 我已将lambda函数添加到与EC2实例相同的VPC和安全组中。我不确定;是什么原因引起的? 我具有lambda函数的EC2FullAccess权限

解决方法

正确的安全配置应为:

  • 关于Lambda函数(Lambda-SG)的安全组。它不需要任何入站规则。将出站规则保留为标准的“允许所有”。
  • EC2实例(Elasticsearch-SG)上的安全组,该安全组允许来自Lambda-SG的所需端口(9200?)上的入站连接。

也就是说,Elasticsearch-SG专门允许来自Lambda-SG的入站连接。

请注意,安全组规则分别适用于每个实例。将两个资源“放入”同一安全组不允许这些资源之间进行访问,除非有规则允许其自身进行入站访问。因此,最好在资源的每一层上放置不同的安全组。

无需为Lambda函数分配EC2FullAccess权限。那只是用来调用AWS来执行诸如启动或终止EC2实例之类的事情。