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