クラウドサービスなだけに固定 IP アドレスを使っていない限り、Amazon の都合次第で Amazon が運営しているサーバーやサービスの IP アドレスは変わります。基本的には DNS 名称を使っていれば問題ありませんが、Firewall のポリシーが厳格な会社の場合には特定の IP アドレスにだけ接続させるために AWS の IP アドレス範囲を知る必要があったりします。
詳しい手順については下記 AWS 公式マニュアルにも載っていますが、以下に手順を纏めましたので下記手順を実行すると簡単です。
AWS IP Address Ranges
Linux マシン上で AWS の IP アドレス範囲を調べる方法
ここでは Linux マシン上で AWS の各サービスの IP アドレス範囲を簡単に調べる方法を説明します。手順を実行するには jq という Linux コマンドが必要ですので、Ubuntu であれば次のようにしてインストールしておきます。$ sudo apt-get install jq
では早速 AWS の IP アドレス範囲を取得してみましょう。
1. AWS の公式ウェブサイトから ip-ranges.json というファイルを取得します。
$ wget https://ip-ranges.amazonaws.com/ip-ranges.json
2. ファイルの最終更新日時をチェックします。以下の実行結果によると、IP アドレス範囲情報が更新されたのは 2018/03/09 13:46:09 であることが分かります。
$ jq .createDate < ipranges.json "2018-03-09-13-46-09"
3. 特定の AWS リージョン(地域) の IP アドレス範囲を調べます。ここでは AWS 東京リージョンの IP アドレス範囲全てを取得しています。
$ jq '.prefixes[] | select(.region=="ap-northeast-1")' < ip-ranges.json { "ip_prefix": "13.112.0.0/14", "region": "ap-northeast-1", "service": "AMAZON" } { "ip_prefix": "13.230.0.0/15", "region": "ap-northeast-1", "service": "AMAZON" } { "ip_prefix": "18.179.0.0/16", "region": "ap-northeast-1", "service": "AMAZON" } ..... { "ip_prefix": "54.248.220.0/26", "region": "ap-northeast-1", "service": "ROUTE53_HEALTHCHECKS" } { "ip_prefix": "54.250.253.192/26", "region": "ap-northeast-1", "service": "ROUTE53_HEALTHCHECKS" } ..... { "ip_prefix": "52.92.60.0/22", "region": "ap-northeast-1", "service": "S3" } ..... { "ip_prefix": "13.112.0.0/14", "region": "ap-northeast-1", "service": "EC2" } ..... { "ip_prefix": "52.199.127.192/26", "region": "ap-northeast-1", "service": "CLOUDFRONT" } { "ip_prefix": "13.112.191.184/29", "region": "ap-northeast-1", "service": "CODEBUILD" }
$ jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json 13.32.0.0/15 13.35.0.0/16 13.52.0.0/16 13.53.0.0/16 13.54.0.0/15 13.56.0.0/16 13.57.0.0/16 13.58.0.0/15 13.112.0.0/14 13.124.0.0/16 13.125.0.0/16 .....