AWS のサービスの IP アドレス範囲を検索する
AWS が提供する AWS IP アドレス範囲の JSON ファイルは、さまざまな AWS サービスの IP アドレスを検索し、その情報を活用してネットワークセキュリティとアクセスコントロールを強化するための貴重なリソースになる可能性があります。この JSON ファイル内に含まれる詳細なデータを解析することで、特定の AWS のサービス サービスやリージョンに関連付けられた IP アドレス範囲を正確に特定することができます。
例えば、IP アドレス範囲を使用して堅牢なネットワークセキュリティポリシーを設定し、特定の AWS リソースへのアクセスを許可または拒否する詳細なファイアウォールルールを設定することができます。この情報はさまざまな AWS Network Firewall タスクにも役立ちます。このレベルの制御は、アプリケーションとデータを保護するのに不可欠で、承認されたトラフィックのみが必要な AWS のサービスに到達できるようになります。さらに、この IP インテリジェンスを使用することは、適当な AWS エンドポイントと通信するようにアプリケーションを適切に設定し、全体的な信頼性とパフォーマンスを高めるのに役立ちます。
ip-ranges.json
ファイルは、単なるファイアウォールルールを超えて、ネットワークインフラストラクチャに高度な送信フィルタリングを設定するのにも使用できます。さまざまな AWS のサービスの送信先 IP アドレス範囲を理解することで、ルーティングポリシーを設定したり、高度なネットワークセキュリティソリューションを活用したりして、意図した送信先に基づいてアウトバウンドトラフィックを選択的に許可または拒否するといったことができます。このエグレスコントロールは、データ漏洩や不正アクセスのリスクを軽減するために不可欠です。
重要なことは、ip-ranges.json
ファイルは定期的に更新されるため、常に最も正確な最新の情報を入手するのに、最新のローカルコピーを維持することが不可欠だということです。ファイルの内容を継続的に活用することで、AWS ベースのアプリケーションのネットワークアクセスとセキュリティを効率的に管理し、クラウドのセキュリティ体制全般を強化することができます。
次の例は、AWS IP アドレス範囲を目的のものだけにフィルタリングするのに役立ちます。Linux では、jq ツールをダウンロードおよび使用して、JSON ファイルのローカルコピーを解析できます。AWS Tools for Windows PowerShell には、この JSON ファイルの解析に使用できる コマンドレット Get-AWSPublicIpAddressRange が含まれています。詳細については、ブログ「AWS のパブリック IP アドレス範囲のクエリの実行」を参照してください。
JSON ファイルを取得するには、「JSON ファイルをダウンロードする」を参照してください。JSON ファイルの構文の詳細については、「AWS IP アドレス範囲 JSON の構文」を参照してください。
ファイル作成日を取得する
次の例では、ip-ranges.json
の作成日を取得しています。
- jq
-
$
jq .createDate < ip-ranges.json
"2024-08-01-17-22-15"
- PowerShell
-
PS C:\>
Get-AWSPublicIpAddressRange -OutputPublicationDate
Thursday, August 1, 2024 9:22:35 PM
特定のリージョンの IP アドレスを取得する
次の例では、指定したリージョンの IP アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
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"
},
...
- PowerShell
-
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
...
すべての IPv4 アドレスを取得します
次の例では、IPv4 アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json
23.20.0.0/14
27.0.0.0/22
43.250.192.0/24
...
- PowerShell
-
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
...
特定のサービスのすべての IPv4 アドレスを取得します
次の例では、指定したサービスの IPv4 アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
jq -r '.prefixes[] | select(.service=="GLOBALACCELERATOR") | .ip_prefix' < ip-ranges.json
13.248.117.0/24
15.197.34.0/23
15.197.36.0/22
...
- PowerShell
-
PS C:\>
Get-AWSPublicIpAddressRange -ServiceKey GLOBALACCELERATOR | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix
IpPrefix
--------
13.248.117.0/24
15.197.34.0/23
15.197.36.0/22
...
特定のリージョンで、サービスのすべての IPv4 アドレスを取得します
次の例では、指定したリージョン内の指定したサービスの IPv4 アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="GLOBALACCELERATOR") | .ip_prefix' < ip-ranges.json
13.248.124.0/24
99.82.166.0/24
99.82.171.0/24
...
- PowerShell
-
PS C:\>
Get-AWSPublicIpAddressRange -Region us-east-1 -ServiceKey GLOBALACCELERATOR | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix
IpPrefix
--------
13.248.117.0/24
99.82.166.0/24
99.82.171.0/24
...
すべての IPv6 アドレスを取得します
次の例では、IPv6 アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json
2a05:d07c:2000::/40
2a05:d000:8000::/40
2406:dafe:2000::/40
...
- PowerShell
-
PS C:\>
Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix
IpPrefix
--------
2a05:d07c:2000::/40
2a05:d000:8000::/40
2406:dafe:2000::/40
...
特定のサービスのすべての IPv6 アドレスを取得する
次の例では、指定したサービスの IPv6 アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
jq -r '.ipv6_prefixes[] | select(.service=="GLOBALACCELERATOR") | .ipv6_prefix' < ip-ranges.json
2600:1f01:4874::/47
2600:1f01:4802::/47
2600:1f01:4860::/47
2600:9000:a800::/40
...
- PowerShell
-
PS C:\>
Get-AWSPublicIpAddressRange -ServiceKey GLOBALACCELERATOR | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix
IpPrefix
--------
2600:1f01:4874::/47
2600:1f01:4802::/47
2600:1f01:4860::/47
2600:9000:a800::/40
...
特定のボーダーグループのすべての IP アドレスを取得する
次の例では、指定したボーダーグループのすべての IP アドレスについて JSON ファイルをフィルタリングしています。
- jq
-
$
jq -r '.prefixes[] | 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
...
- PowerShell
-
PS C:\>
Get-AWSPublicIpAddressRange | where {$_.NetworkBorderGroup -eq "us-west-2-lax-1"} | select IpPrefix
IpPrefix
--------
70.224.192.0/18
52.95.230.0/24
15.253.0.0/16
...