如何获取特定区域中 EC2 实例的 IP 范围

Posted

技术标签:

【中文标题】如何获取特定区域中 EC2 实例的 IP 范围【英文标题】:How do I get the IP ranges for EC2 instances in specific regions 【发布时间】:2021-12-03 20:44:59 【问题描述】:

我需要知道 AWS EC2 实例将使用哪个 IP 子网

阅读:

https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html https://superuser.com/questions/989123/amazon-ec2-public-ip-address/989400

我知道我可以使用这个 URL 给出 IP 范围:

https://ip-ranges.amazonaws.com/ip-ranges.json

但我对输出有点困惑。

我知道我需要过滤:

地区 类型:EC2

我的理解正确吗? 如果是这样,我会得到 137 个 IP 子网,这是非常重要的数字。

如何更好地控制 IP 子网?

【问题讨论】:

我看到你说的所有 3 个区域都在 json 中丢失。我刚刚在浏览器中通过 Ctrl+f 找到了它们。 为您的每个单独的 EC2 实例提供一个弹性 IP,或通过具有弹性 IP 的 NAT 设备/网关路由它们的流量。然后,您可以使用这些弹性 IP 配置远程防火墙,而不是允许整个 EC2 公共 IP 空间。 【参考方案1】:

如果您的防火墙系统基于这些区域中任何 EC2 实例可能拥有的 IP,将会极其脆弱

允许来自 1 个区域的访问可能会很好,但您正在向五个流量密集且非常受欢迎的 AWS 区域开放防火墙。

允许所有流量的一揽子政策基本上会破坏防火墙只允许特定流量通过的目的。

如果您确实在寻找安全性,请将您的 EC2 实例分配一个 Elastic IP (EIP) 并仅允许来自这些特定 IP 的流量。

根据您拥有的 EC2 实例数量,使用 1 个 EIP 通过 1 个 NAT gateway 路由您的所有 EC2 实例(如果您不需要所有您的 EC2 实例具有不同的公共 IP)。

您将不必担心跟上 Amazon 可能进行的 IP 范围更改,拥有更清晰的防火墙策略并通过只允许您确定来自您的实例的流量通过来获得更严格的安全性。

赢,赢,赢。

【讨论】:

感谢您的回答,我更新了我的问题,因为主要项目是关于 EC2 实例的 IP 范围。我知道弹性 IP 以及您的建议。我赞成你的回答。我还注意到从 JSON 文件中提取数据时出错,所有区域都有值。非常感谢您的帮助。 啊,在这种情况下,是的,所有区域都存在于 JSON 文件中 :) 那是下一站

以上是关于如何获取特定区域中 EC2 实例的 IP 范围的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Amazon EC2 上获取所有公共 IP 及其实例名称的列表

如何知道连接到我的 EC2 实例的特定机器

如何跟踪 EC2 实例或弹性 IP 上的公共带宽使用情况?

如何基于每个客户端 IP 配置 EC2 负载均衡器?

在 Boto3 中获取具有特定标签和值的 EC2 实例列表

如何在Python AWS boto API中获取EC2实例ID的容器实例列表