可以将 ip 列入白名单以与 aws 负载均衡器后面的 ec2 实例进行入站通信吗?

Posted

技术标签:

【中文标题】可以将 ip 列入白名单以与 aws 负载均衡器后面的 ec2 实例进行入站通信吗?【英文标题】:possible to whitelist ip for inbound communication to an ec2 instance behind an aws load balancer? 【发布时间】:2017-01-12 03:53:35 【问题描述】:

我有一个 ec2 实例在 aws 中的弹性负载均衡器后面运行一个网站。主要是因为我想为 https 使用亚马逊新的免费 ssl。

我的挑战是,我需要在安全组中将我的 IP 地址列入白名单,以便我是唯一可以看到该网站的人(并且我可以根据需要选择性地添加人员)。

我已成功将我的 IP 地址列入白名单,而无需使用负载平衡器。我的挑战是将我的 IP 地址与我的 IP 地址和我的 ec2 实例之间的负载均衡器代理列入白名单。

似乎我的 ec2 实例不会向负载均衡器注册,因为我的 ec2 的安全组不允许来自除我自己之外的任何 IP 地址的传入流量。

我正在寻找一种方法让我的负载均衡器能够对我的 ec2 进行健康检查,但只允许特定的白名单 ip 实际访问该网站。

【问题讨论】:

您使用的是 Classic LB 还是 VPC 负载均衡器? vpc 负载均衡器 【参考方案1】:

如果您使用的是 VPC(您确实应该使用),那么您将有一个安全组连接到负载均衡器。这就是您将 IP 地址列入白名单的地方。 EC2 服务器只需要将负载均衡器的安全组列入白名单即可。

你可以像这样可视化它:

您的 IP -> 安全组 1 -> 负载均衡器 -> 安全组 2 -> EC2 实例

安全组 1 验证 IP 地址是否在白名单中,并允许流量通过负载平衡器。负载均衡器将流量发送到池中的一个实例。安全组 2 验证流量是否来自属于安全组 1(负载均衡器)的设备,该设备已被列入白名单,并允许其通过 EC2 实例。

【讨论】:

我可以将其他安全组加入负载均衡器的安全组吗? @Jayaprakash,是的,您可以通过在源字段中输入安全组 ID 来做到这一点。 不,如果我在源字段中提供安全组 ID(EC2 实例组在此安全组中),它不起作用,就像我输入 EC2 实例的 IP 一样,它可以工作. @Jayaprakash 您可能需要将其作为一个单独的问题发布在本网站上,然后提供更多详细信息。 是否可以在 AWS EC2 中使用 ssh 将某些 IP 列入白名单?【参考方案2】:

我能够通过更改 EC2 的安全组以允许来自分配给我的负载均衡器的安全组的端口 80 上的传入 http 连接来解决此问题。

然后我的负载均衡器本身允许从任何地方通过端口 80 传入 HTTP 流量。

所以我猜这里的诀窍是,您可以允许来自 IP 或安全组的传入连接。

【讨论】:

我以为您只想将其限制为您的 IP,在这种情况下,您应该将您的 IP 列入负载均衡器安全组的白名单,而不是向所有 IP 开放它。 没错,我仍在努力。由于某种原因,我无法将我想要的安全组(包含白名单)分配给我的负载均衡器。当我去:负载平衡>负载平衡器>我的负载平衡器>描述>安全>编辑安全组我创建的安全组没有显示,我只看到允许所有流量的默认安全组 创建ELB时必须先分配安全组,以后不能再分配不同的组。您现在可能需要重新创建 ELB。

以上是关于可以将 ip 列入白名单以与 aws 负载均衡器后面的 ec2 实例进行入站通信吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 AWS Beanstalk IP 列入白名单

如何将 AWS RDS 安全组中的 Zapier IP 地址列入白名单

在不将 ip 列入白名单的情况下限制对 S3 托管网站的访问

将 IPv6 列入白名单

AWS NLB 到 ALB IP 白名单

AWS EC2 / Elastic Beanstalk |如何按域列入白名单?