AWS サービスの IP アドレスを検索し、サービスへのアクセスを制限する - Amazon Virtual Private Cloud

AWS サービスの IP アドレスを検索し、サービスへのアクセスを制限する

AWS が提供する ip-ranges.json ファイルは、さまざまな AWS サービスの IP アドレスを検索し、その情報を活用してネットワークセキュリティとアクセスコントロールを強化するための貴重なリソースです。この JSON ファイルに含まれる詳細なデータを解析することで、特定の AWS サービスやリージョンに関連付けられた IP アドレス範囲を正確に特定することができます。

例えば、IP アドレス範囲を使用して堅牢なネットワークセキュリティポリシーを設定し、特定の AWS リソースへのアクセスを許可または拒否する詳細なファイアウォールルールを設定することができます。この情報はさまざまな AWS Network Firewall タスクにも役立ちます。このレベルの制御は、アプリケーションとデータを保護し、承認されたトラフィックのみを必要な AWS サービスに到達させるようにするために不可欠です。さらに、この IP インテリジェンスを使用することは、適当な AWS エンドポイントと通信するようにアプリケーションを適切に設定し、全体的な信頼性とパフォーマンスを高めるのに役立ちます。

ファイアウォールルールだけでなく、ip-ranges.json ファイルを使用することでネットワークインフラストラクチャに高度な出力フィルタを設定することもできます。さまざまな AWS サービスの送信先 IP アドレス範囲を理解しておけば、ルーティングポリシーを設定したり、高度なネットワークセキュリティソリューションを活用して、意図した送信先に基づいてアウトバウンドトラフィックを個別に許可または拒否したりできます。このエグレスコントロールは、データ漏洩や不正アクセスのリスクを軽減するために不可欠です。

ip-ranges.json ファイルは定期的に更新されるため、最も正確かつ最新の情報を確実に入手するため、最新のローカルコピーを維持する必要があります。ファイルの内容を継続的に活用することで、AWS ベースのアプリケーションのネットワークアクセスとセキュリティを効率的に管理し、クラウドのセキュリティ体制全般を強化することができます。

JSON ファイルのフィルタリング

情報をフィルターして目的のものを見つけやすくするコマンドラインツールをダウンロードできます。

Windows

AWS Tools for Windows PowerShell には、この JSON ファイルを解析するコマンドレット Get-AWSPublicIpAddressRange が含まれています。以下はその使用例です。詳細については、「Querying the Public IP Address Ranges for AWS」および「Get-AWSPublicIpAddressRange」を参照してください。

例 1. 作成日を取得します
PS C:\> Get-AWSPublicIpAddressRange -OutputPublicationDate Wednesday, August 22, 2018 9:22:35 PM
例 2. 特定のリージョンの情報を取得します
PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 IpPrefix Region NetworkBorderGroup Service -------- ------ ------- ------- 23.20.0.0/14 us-east-1 us-east-1 AMAZON 50.16.0.0/15 us-east-1 us-east-1 AMAZON 50.19.0.0/16 us-east-1 us-east-1 AMAZON ...
例 3. すべての IP アドレスを取得します
PS C:\> (Get-AWSPublicIpAddressRange).IpPrefix 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ... 2406:da00:ff00::/64 2600:1fff:6000::/40 2a01:578:3::/64 2600:9000::/28
例 4. すべての IPv4 アドレスを取得します
PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix IpPrefix -------- 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
例 5. すべての IPv6 アドレスを取得します
PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix IpPrefix -------- 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
例 6. 特定のサービスのすべての IP アドレスを取得します
PS C:\> Get-AWSPublicIpAddressRange -ServiceKey CODEBUILD | select IpPrefix IpPrefix -------- 52.47.73.72/29 13.55.255.216/29 52.15.247.208/29 ...

Linux

以下のサンプルコマンドは jq ツールを使用して JSON ファイルのローカルコピーを解析しています。

例 1. 作成日を取得します
$ jq .createDate < ip-ranges.json "2016-02-18-17-22-15"
例 2. 特定のリージョンの情報を取得します
$ jq '.prefixes[] | select(.region=="us-east-1")' < ip-ranges.json { "ip_prefix": "23.20.0.0/14", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.16.0.0/15", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.19.0.0/16", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, ...
例 3. すべての IPv4 アドレスを取得します
$ jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
例 4. すべての IPv6 アドレスを取得します
$ jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
例 5. 特定のサービスのすべての IPv4 アドレスを取得します
$ jq -r '.prefixes[] | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json 52.47.73.72/29 13.55.255.216/29 52.15.247.208/29 ...
例 6. 特定のリージョンで、サービスのすべての IPv4 アドレスを取得します
$ jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json 34.228.4.208/28
例 7. 特定のネットワーク境界グループの情報を取得する
$ jq -r '.prefixes[] | select(.region=="us-west-2") | select(.network_border_group=="us-west-2-lax-1") | .ip_prefix' < ip-ranges.json 70.224.192.0/18 52.95.230.0/24 15.253.0.0/16 ...

出口側のコントロールの実装

ある AWS サービスで作成したリソースが他の AWS サービスにのみアクセスできるようにするために、ip-ranges.json ファイルの IP アドレス範囲情報を使用して送信側フィルタリングを実行できます。セキュリティグループのルールが AMAZON リストの CIDR ブロックへのアウトバウンドトラフィックを許可していることを確認してください。セキュリティグループにはクォータがあります。各リージョンの IP アドレス範囲の数によっては、リージョンごとに複数のセキュリティグループが必要になる場合があります。

注記

AWS サービスの中には、EC2 上に構築され、EC2 IP アドレススペースを使用するもあります。EC2 IP アドレススペースへのトラフィックをブロックすると、EC2 以外のサービスへのトラフィックもブロックされます。