AWSのIPアドレス範囲を確認する
いろいろやり方など出尽くしてるネタだと思いますが、必要があり調査したのでメモとして残しておきます。
AWSのIPアドレス範囲は公式でjson形式で公開されています。
その情報をもとにcurlとjqコマンドを使って必要なIPアドレス範囲を抽出するコマンドを作成しました。(csv形式で表示するコマンドにしています)
全リージョン・全サービスを取得
curl https://ip-ranges.amazonaws.com/ip-ranges.json \
|jq -r '.prefixes' \
|jq 'sort_by(.region, .service, .ip_prefix) | .[]' \
|jq -r 'select(has("ip_prefix")) | [.region, .service, .ip_prefix, .network_border_group] | @csv'
リージョンを指定
AWS_REGION_PREFIX=ap-northeast # 取得するリージョンのプレフィックス
curl https://ip-ranges.amazonaws.com/ip-ranges.json \
|jq -r '.prefixes' \
|jq 'sort_by(.region, .service, .ip_prefix) | .[]' \
|jq --arg region ${AWS_REGION_PREFIX} -r 'select(has("ip_prefix")) |select(.region |test($region)) | [.region, .service, .ip_prefix, .network_border_group] | @csv'
サービスを指定
AWS_SERVICE_PREFIX=EC2 # 取得するサービスのプレフィックス
curl https://ip-ranges.amazonaws.com/ip-ranges.json \
|jq -r '.prefixes' \
|jq 'sort_by(.region, .service, .ip_prefix) | .[]' \
|jq --arg service ${AWS_SERVICE_PREFIX} -r 'select(has("ip_prefix")) |select(.service |test($service)) | [.region, .service, .ip_prefix, .network_border_group] | @csv'
リージョン・サービスを指定
AWS_REGION_PREFIX=ap-northeast
AWS_SERVICE_PREFIX=EC2
curl https://ip-ranges.amazonaws.com/ip-ranges.json \
|jq -r '.prefixes' \
|jq 'sort_by(.region, .service, .ip_prefix) | .[]' \
|jq --arg region ${AWS_REGION_PREFIX} --arg service ${AWS_SERVICE_PREFIX} -r 'select(has("ip_prefix")) |select(.region |test($region)) |select(.service |test($service)) |[.region, .service, .ip_prefix, .network_border_group] |@csv'
指定できるリージョン・サービスを取得
# リージョン
curl https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes' |jq 'sort_by(.region) |.[] |.region' |jq -s 'unique |.[]'
# サービス
curl https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes' |jq 'sort_by(.service) |.[] |.service' |jq -s 'unique |.[]'
2020-12-21現在、以下のリージョン・サービスが返ってきます。
$ curl https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes' |jq 'sort_by(.region) |.[] |.region' |jq -s 'unique |.[]'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 662k 100 662k 0 0 4361k 0 --:--:-- --:--:-- --:--:-- 4361k
"GLOBAL"
"af-south-1"
"ap-east-1"
"ap-northeast-1"
"ap-northeast-2"
"ap-northeast-3"
"ap-south-1"
"ap-south-2"
"ap-southeast-1"
"ap-southeast-2"
"ap-southeast-3"
"ca-central-1"
"cn-north-1"
"cn-northwest-1"
"eu-central-1"
"eu-north-1"
"eu-south-1"
"eu-west-1"
"eu-west-2"
"eu-west-3"
"me-central-1"
"me-south-1"
"sa-east-1"
"us-east-1"
"us-east-2"
"us-gov-east-1"
"us-gov-west-1"
"us-west-1"
"us-west-2"
$ curl https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes' |jq 'sort_by(.service) |.[] |.service' |jq -s 'unique |.[]'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 662k 100 662k 0 0 3564k 0 --:--:-- --:--:-- --:--:-- 3564k
"AMAZON"
"AMAZON_APPFLOW"
"AMAZON_CONNECT"
"API_GATEWAY"
"CHIME_MEETINGS"
"CHIME_VOICECONNECTOR"
"CLOUD9"
"CLOUDFRONT"
"CODEBUILD"
"DYNAMODB"
"EC2"
"EC2_INSTANCE_CONNECT"
"GLOBALACCELERATOR"
"KINESIS_VIDEO_STREAMS"
"ROUTE53"
"ROUTE53_HEALTHCHECKS"
"ROUTE53_HEALTHCHECKS_PUBLISHING"
"S3"
"WORKSPACES_GATEWAYS"
この記事が気に入ったらサポートをしてみませんか?