查询在特定Region的某AWS服务IP地址段

2023年9月测试通过,可使用本文档查询EC2 Instance Connect的地址范围

一、背景

为了查询在特定Region的某AWS服务IP地址段,可参考详细文档,包含Windows Powershell说明,请参考官方文档:

https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-ip-ranges.html

二、环境准备

1、安装jq工具

MacOS下执行:

brew install jq

Linux下执行

yum install jq -y

2、下载完整JSON文件到本地

请从本地址下载:

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

三、常用查询例子

1、查询新加坡Region即ap-southeast-1的所有服务

jq '.prefixes[] | select(.region=="ap-southeast-1")' < ip-ranges.json

注意因为是列出所有IP,因此清单会很长,可将其通过Linux管道输出到一个新文件,例如:

jq '.prefixes[] | select(.region=="ap-southeast-1")' < ip-ranges.json > sgp-region.json

2、查询某服务全球(如Cloudfront)回源站的所有IP地址

jq -r '.prefixes[] | select(.service=="CLOUDFRONT_ORIGIN_FACING") | .ip_prefix' < ip-ranges.json

注意:如果是希望限制源站的ALB/EC2只接受来自CDN的流量,那么还可以使用Prefix功能,请参考这篇博客。

3、查询新加坡Region的EC2 Instance Connect服务的IP地址范围

为了使用EC2 Instance Connect功能,需要在EC2安全组上配置为SSH入栈放行流量。由此查询新加坡区域的EC2 Instance Connect使用的IP地址段,命令如下:

jq -r '.prefixes[] | select(.region=="ap-southeast-1") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix' < ip-ranges.json

4、查询新加坡区域的S3使用的IP地址段

jq -r '.prefixes[] | select(.region=="ap-southeast-1") | select(.service=="S3") | .ip_prefix' < ip-ranges.json

更多例子请参考文档,不再一一列举。

四、参考文档

https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-ip-ranges.html