查找 AWS 服务 的 IP 地址范围 - Amazon Virtual Private Cloud

查找 AWS 服务 的 IP 地址范围

AWS 提供的 AWS IP 地址范围 JSON 文件可以作为查找各种 AWS 服务的 IP 地址并利用该信息增强网络安全和访问控制的宝贵资源。通过解析该 JSON 文件中包含的详细数据,即可精确识别与特定 AWS 服务 和区域关联的 IP 地址范围。

例如,您可以利用 IP 地址范围来配置强大的网络安全策略,设置精细的防火墙规则以允许或拒绝对某些 AWS 资源的访问。此信息也适用于各种 AWS Network Firewall 任务。这种控制级别对保护应用程序和数据至关重要,可确保只有经过授权的流量才能到达必要的 AWS 服务。此外,拥有这种 IP 情报有助于正确配置应用程序以与正确的 AWS 端点通信,从而提高整体可靠性和性能。

除了防火墙规则,还可以利用 ip-ranges.json 文件在网络基础设施上配置复杂的出口筛选。通过了解不同 AWS 服务 的目标 IP 地址范围,您可以设置路由策略或利用类似的高级网络安全解决方案,从而根据预期目标有选择地允许或阻止出站流量。这种出口控制对于降低数据泄露和未经授权访问的风险至关重要。

值得注意的是,ip-ranges.json 文件会定期更新,因此维护最新的本地副本对于确保您获得最准确且最新的信息至关重要。通过持续利用此文件的内容,您可以有效地管理基于 AWS 的应用程序的网络访问和安全性,从而增强您的整体云安全状况。

以下示例有助于筛选 AWS IP 地址范围,以便找出符合需求的 IP 地址。在 Linux 上,您可以下载并使用 jq 工具来解析 JSON 文件的本地副本。AWS Tools for Windows PowerShell 包含的 cmdlet(即 Get-AWSPublicIpAddressRange)可用于解析该 JSON 文件。有关更多信息,请参阅以下博客文章:《Querying the Public IP Address Ranges for AWS》。

要获取 JSON 文件,请参阅下载 JSON 文件。有关 JSON 文件语法的更多信息,请参阅 AWS IP 地址范围 JSON 的语法

获取文件创建日期

下面的示例获取了 ip-ranges.json 的创建日期。

jq
$ jq .createDate < ip-ranges.json "2024-08-01-17-22-15"
PowerShell
PS C:\> Get-AWSPublicIpAddressRange -OutputPublicationDate Thursday, August 1, 2024 9:22:35 PM

获取指定区域的 IP 地址

以下示例筛选了 JSON 文件中指定区域的 IP 地址。

jq
$ jq '.prefixes[] | select(.region=="us-east-1")' < ip-ranges.json { "ip_prefix": "23.20.0.0/14", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.16.0.0/15", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.19.0.0/16", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 IpPrefix Region NetworkBorderGroup Service -------- ------ ------- ------- 23.20.0.0/14 us-east-1 us-east-1 AMAZON 50.16.0.0/15 us-east-1 us-east-1 AMAZON 50.19.0.0/16 us-east-1 us-east-1 AMAZON ...

获取所有 IPv4 地址

以下示例筛选了 JSON 文件中的 IPv4 地址。

jq
$ jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix IpPrefix -------- 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...

获取特定服务的所有 IPv4 地址

以下示例筛选了 JSON 文件中指定服务的 IPv4 地址。

jq
$ jq -r '.prefixes[] | select(.service=="GLOBALACCELERATOR") | .ip_prefix' < ip-ranges.json 13.248.117.0/24 15.197.34.0/23 15.197.36.0/22 ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange -ServiceKey GLOBALACCELERATOR | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix IpPrefix -------- 13.248.117.0/24 15.197.34.0/23 15.197.36.0/22 ...

获取特定区域中的特定服务的所有 IPv4 地址

以下示例筛选了 JSON 文件中指定区域内指定服务的 IPv4 地址。

jq
$ jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="GLOBALACCELERATOR") | .ip_prefix' < ip-ranges.json 13.248.124.0/24 99.82.166.0/24 99.82.171.0/24 ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 -ServiceKey GLOBALACCELERATOR | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix IpPrefix -------- 13.248.117.0/24 99.82.166.0/24 99.82.171.0/24 ...

获取所有 IPv6 地址

以下示例筛选了 JSON 文件中的 IPv6 地址。

jq
$ jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix IpPrefix -------- 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...

获取特定服务的所有 IPv6 地址

以下示例筛选了 JSON 文件中指定服务的 IPv6 地址。

jq
$ jq -r '.ipv6_prefixes[] | select(.service=="GLOBALACCELERATOR") | .ipv6_prefix' < ip-ranges.json 2600:1f01:4874::/47 2600:1f01:4802::/47 2600:1f01:4860::/47 2600:9000:a800::/40 ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange -ServiceKey GLOBALACCELERATOR | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix IpPrefix -------- 2600:1f01:4874::/47 2600:1f01:4802::/47 2600:1f01:4860::/47 2600:9000:a800::/40 ...

获取指定边界组的所有 IP 地址

以下示例筛选了 JSON 文件中指定边界组的所有 IP 地址。

jq
$ jq -r '.prefixes[] | select(.network_border_group=="us-west-2-lax-1") | .ip_prefix' < ip-ranges.json 70.224.192.0/18 52.95.230.0/24 15.253.0.0/16 ...
PowerShell
PS C:\> Get-AWSPublicIpAddressRange | where {$_.NetworkBorderGroup -eq "us-west-2-lax-1"} | select IpPrefix IpPrefix -------- 70.224.192.0/18 52.95.230.0/24 15.253.0.0/16 ...