我应该如何限制负载均衡的 Web 流量到我的 Elastic Beanstalk 环境?

oro*_*ome 5 security amazon-ec2 amazon-web-services amazon-elb amazon-elastic-beanstalk

我正在尝试配置对我的 EB 环境的访问,并希望将 HTTP 访问(通过 ELB)限制为某些 IP 地址。

我有一个开箱即用的 EB 应用程序(实际上是一堆,每个应用程序都有一些环境)并且希望能够(a)限制对特定 IP 集的访问,同时(b)让所有流量都通过 ELB。至关重要的是,我想通过 (c) 创建几个组(例如,允许我的 IP 的管理员 SG,允许团队 IP 的开发 SG,以及允许所有 IP 的公共 SG)并应用这些组来做到这一点根据每个 EB 环境的需要(通常以不同的方式组合到不同的环境中),而不必在团队成员的 IP 更改或团队成员更改时更新每个环境中的源。我想在不深入研究网络结构的情况下执行此操作,只需使用默认的 EB 结构。

默认的 ELB 安全组允许从所有 IP 访问并且不打算进行编辑(“修改可能会影响到未来 ELB 的流量”),因此我似乎(天真地)可以采取三种方法:

  1. 为 HTTP 创建一个具有受限 IP 源的新安全组,并将其分配给 ELB,而不是默认的 ELB SG。

  2. 为 HTTP 创建一个具有受限 IP 源的新安全组,并将其设置为我环境安全组中的 HTTP 源。

  3. 保持默认 ELB 不变,但在我的 EB 环境的安全组中限制允许的源 IP 范围(而不是将 ELB 的 SG 指定为源)。

但是 (1) 似乎要求我还指定新 SG,而不是默认的 ELB SG,作为我每个环境中的源,并且 (2) 似乎要求我将新 SG 分配给环境的 ELB;虽然在 (3) 中不清楚流量是通过还是被 ELB 过滤。

对于我的目的(至少在理论上)的理想解决方案是拥有少量的安全组来控制 Web 访问(例如,一个用于列出特定 IP 作为来源的管理员用户,另一个用于列出更广泛 IP 的测试人员,另一个用于公共访问),并根据需要将这些分配给环境(作为其 SG 规则的来源)。但是这种方法(基本上是上面的 2)似乎要求我还将组分配给每个环境的 ELB(即我需要结合 1 和 2)。(这不会那么尴尬,除非克隆环境似乎总是为其 SG设置默认规则,并为其 ELB 设置默认 SG。)

所有这些似乎都太麻烦了,并表明我缺少一些更简单的方法。我应该如何限制负载均衡的 Web 流量到我的 Elastic Beanstalk 环境?

Nic*_*ich 0

听起来您想在 VPC 内启动环境,以便 VPC 控制访问。

但是,如果您仍然只想使用安全组:

1,但是将其分配给Beanstalk环境,而不是ELB。

您可以告诉 Elastic Beanstalk 环境使用现有的安全组。EB 仍将创建默认安全组,但它还将使用您创建的安全组。

您可以在控制台中编辑它:环境 -> 配置 -> 实例。但请确保将您的安全组添加到以逗号分隔的列表中。不要删除已经存在的那个。