如何区分 AWS 中的外部 ELB 和内部 ELB?

How can I distinguish between an External and an Internal ELB in AWS?

我有单独的 "zones" (VPC's),其中有集群服务器。在 "DMZ" 区域中,我有一个具有不同前后 NIC 的集群。 172.30.x.x 服务面向 Internet 的一侧,而 10.0.x.x 服务任何进入(更多)安全区域的后端连接。

因为我使用的是集群环境,所以我设置了 load-balancer 的 (ELB),一个用于来自 Internet 的外部连接 (172.30.x.x),一个内部 ELB 用于 internal-zone (10.0.x.x).

我需要为 front/back (172.30.x.x / 10.0.x.x) 上的听众添加一个 ACL (allow/deny),但我的问题是AWS ELB 对外部 ELB 和内部 ELB 具有相同的源 IP。 原始源 IP 仅包含 X-forwarded-for header 将不起作用,因为 ACL 只能处理源 IP 而不能处理 HTTP headers。

现在 ACL 毫无价值,因为 Internet 调用和来自后端区域的调用的源 IP 都在 172 范围内。30.x.x 这是两个 ELB "live"...

关于如何区分 ACL 的内部和外部 IP 的任何建议(或设置安全组或其他措施以确保只有后端连接可以达到 10 个。0.x.x 听众)?

ELB 没有静态 IP,因此您不能基于它创建 ACL 规则。作为安全最佳实践,面向 public 的外部 ELB 应该位于与任何 ELB 或 instances/interfaces 不应该接收外部交通.

将您的外部 ELB 移至不用于其他用途的子网。如果它们已经在使用中,这可以通过零停机时间来实现,因为您只需在正确的子网中创建新的 ELB,添加后端实例,更改指向 ELB 的任何 DNS 记录,您应该会很好。这允许为适当的子网 CIDR 块创建 ACL 规则。