AWS Lambda使用适当的安全组设置访问EC2

时间:2016-01-15 15:31:24

标签: amazon-web-services amazon-ec2 aws-lambda aws-security-group

我的MongoDB生活在AWS EC2上,而我的Lambda函数(python代码)正试图通过IP地址23.23.23.23:27017访问它。在我们公司,我们通过在EC2实例上设置AWS安全组来将我们的EC2实例限制为我们公司的IP地址。 问题是没有打开端口27017对我的EC2实例安全组的所有流量的访问权限,我的lambda无法访问它,因为我们不知道执行Lambda的IP地址。 / p>

有没有更好的方法从AWS服务(如Lambda)访问EC2实例上的端口而不违反安全策略?

3 个答案:

答案 0 :(得分:4)

不确定为什么每个人都说VPC端点会解决这个问题。 VPC端点允许源自VPC的通信访问VPC外部的AWS服务。提出的问题是关于存在于VPC之外的Lambda函数,访问VPC中存在的EC2实例。

根据this announcement,即将支持在VPC内运行Lambda函数。这将解决这个问题所解决的问题。

答案 1 :(得分:3)

今天在AWS上,当您需要限制从另一个AWS服务到您自己的实例的入站IP访问时,您的选项有限。 AWS网络架构的本质是该服务可能来自AWS IP Address Range

中的任何IP地址

除了向所有流量开放实例外,您还可以考虑以下三个选项:

  1. 将实例打开到所有流量,在实例上使用iptables或Windows防火墙,并限制对AWS IP地址范围中任何IP的访问。这仍然允许数百万个IP访问该实例,但它稍微更安全。至少可以说是不理想的。

  2. 使用简单排队服务构建内部API,以与服务进行交互。

  3. 让Lambda作业确定其IP,并动态更新目标实例的安全组,然后在完成后重置安全组。不漂亮,但它会工作。根据您的公司安全政策,这可能是最可行的选择。

答案 2 :(得分:0)

如果将lambda函数配置为在与运行Mongo DB的EC2实例相同的VPC和子网上运行,则可以从lambda函数访问MongoDB。

另一个配置是lambda函数中的安全组具有针对EC2实例所在的CIDR块的正确入站和出站设置。

您不需要特定的IP地址,只需要CIDR范围即可打开连接。