API Gateway がバックエンドアクセスに使用する IP アドレス範囲を教えてください。
困っていた内容
API Gateway 経由でバックエンドの HTTP エンドポイントを実行しています。
バックエンドアプリ側でアクセス制御をしたいので、API Gateway が使用する IP アドレス範囲を教えてください。
どう対応すればいいの?
ip-ranges.jsonをダウンロードして、対象リージョンとサービスでフィルタリングしてください。
curl https://ip-ranges.amazonaws.com/ip-ranges.json | \
jq -r '.prefixes[] | select(.region=="ap-northeast-1") | select(.service=="API_GATEWAY") | .ip_prefix'
AWS が使用する IP アドレス範囲はip-ranges.jsonという JSON ファイル形式で公開されています。
JSON ファイルには、対象リージョンや AWS サービス名とともに CIDR 表記の IP アドレス範囲が含まれています。
そのため、ダウンロードしてフィルタリングを行うことで、使用される IP アドレス範囲が確認できます。
なお、ip-ranges.json に記載されている AWS の IP アドレス範囲は変更されることがありますのでご注意ください。
※ Amazon SNS を使用して、変更通知を受け取ることができます。
また、東京リージョンの API Gateway の場合、次のような結果が取得できます。
$ curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="ap-northeast-1") | select(.service=="API_GATEWAY") | .ip_prefix'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2221k 100 2221k 0 0 17.3M 0 --:--:-- --:--:-- --:--:-- 17.3M
18.180.88.0/23
3.112.162.0/23
3.112.96.160/27
35.73.115.128/25
35.75.130.0/24
35.75.131.0/26
35.77.112.0/22
35.77.124.0/23
サービス名やリージョンを変えることで、その他サービスの IP アドレス範囲も確認できますので、適宜ご活用ください。
なお、サービスによっては IP アドレス範囲が公開されていないこともあります。
AWS IP アドレス範囲 JSON の構文 - Amazon Virtual Private Cloud
有効な値: AMAZON | AMAZON_APPFLOW | AMAZON_CONNECT | API_GATEWAY | AURORA_DSQL | CHIME_MEETINGS | CHIME_VOICECONNECTOR | CLOUD9 | CLOUDFRONT | CLOUDFRONT_ORIGIN_FACING | CODEBUILD | DYNAMODB | EBS | EC2 | EC2_INSTANCE_CONNECT | GLOBALACCELERATOR | IVS_LOW_LATENCY | IVS_REALTIME | KINESIS_VIDEO_STREAMS | MEDIA_PACKAGE_V2 | ROUTE53 | ROUTE53_HEALTHCHECKS | ROUTE53_HEALTHCHECKS_PUBLISHING | ROUTE53_RESOLVER | S3 | WORKSPACES_GATEWAYS
参考資料
- 当社は、お客様がエグレスフィルタリングを実行するために使用することが多いサービスの IP アドレス範囲を公開します。サービスには IP アドレス範囲が公開されていないものもあります。
- サービスは IP アドレス範囲を使用して他のサービスと通信または顧客ネットワークと通信します。
…(中略)…
ある AWS サービスで作成したリソースが他の AWS サービスにのみアクセスできるようにするには、ip-ranges.json ファイルの IP アドレス範囲情報を使用して送信フィルタリングを実行できます。
特定のリージョンで、サービスのすべての IPv4 アドレスを取得します
次の例では、指定したリージョン内の指定したサービスの IPv4 アドレスについて JSON ファイルをフィルタリングしています。








