4

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

有没有更好的方法可以在不违反安全策略的情况下从 Lambda 等 AWS 服务访问 EC2 实例上的端口?

4

3 回答 3

4

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

根据此公告,即将支持在 VPC 中运行 Lambda 函数。这将解决这个问题解决的问题。

于 2016-01-15T16:26:50.093 回答
3

如今,在 AWS 上,当您需要限制从其他 AWS 服务对您自己的实例的入站 IP 访问时,您的选择有限。AWS 网络架构的本质是服务可以来自AWS IP 地址范围内的任何 IP 地址

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

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

  2. 构建一个内部 API(可能使用简单队列服务)来与服务交互。

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

于 2016-01-15T16:07:00.517 回答
0

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

另一项配置是 lambda 函数中的安全组为您的 EC2 实例所在的 CIDR 块完成了正确的入站和出站设置。

您不需要特定的 IP 地址,而是需要 CIDR 范围来打开连接。

于 2016-06-01T22:40:14.100 回答