AWS-IP-Adressbereiche
Amazon Web Services (AWS) veröffentlicht seine aktuellen IP-Adressbereiche im JSON-Format. Um die aktuellen Bereiche anzuzeigen, laden Sie die .json
-Datei herunter. Um einen Verlauf zu pflegen, speichern Sie nachfolgende Versionen der .json
-Datei in Ihrem System. Um festzustellen, ob seit der letzten Speicherung der Datei Änderungen vorgenommen wurden, prüfen Sie den Zeitpunkt der letzten Veröffentlichung in der aktuellen Datei und vergleichen Sie ihn mit dem Zeitpunkt der Veröffentlichung in der letzten Datei, die Sie gespeichert haben.
Die IP-Adressbereiche, die Sie über Ihre eigenen IP-Adressen zu AWS mitbringen (BYOIP), sind nicht in der .json
-Datei enthalten.
Inhalt
Herunterladen
Laden Sie ip-ranges.json
Wenn Sie auf diese Datei programmgesteuert zugreifen, liegt es in Ihrer Verantwortung sicherzustellen, dass die Anwendung die Datei erst herunterlädt, nachdem das vom Server bereitgestellte TLS-Zertifikat erfolgreich überprüft wurde.
Syntax
Die Syntax von ip-ranges.json
ist wie folgt:
{ "syncToken": "
0123456789
", "createDate": "yyyy
-mm
-dd
-hh
-mm
-ss
", "prefixes": [ { "ip_prefix": "cidr
", "region": "region
", "network_border_group": "network_border_group
", "service": "subset
" } ], "ipv6_prefixes": [ { "ipv6_prefix": "cidr
", "region": "region
", "network_border_group": "network_border_group
", "service": "subset
" } ] }
- syncToken
-
Zeitpunkt der Veröffentlichung (als Zeit seit Unix-Epoche)
Typ: Zeichenfolge
Beispiel:
"syncToken": "1416435608"
- createDate
-
Datum und Uhrzeit der Veröffentlichung im Format JJ-MM-TT-hh-mm-ss (UTC).
Typ: Zeichenfolge
Beispiel:
"createDate": "2014-11-19-23-29-02"
- prefixes
-
Die IP-Präfixe für die IPv4-Adressbereiche
Typ: Array
- ipv6_prefixes
-
Die IP-Präfixe für die IPv6-Adressbereiche
Typ: Array
- ip_prefix
-
Der öffentliche IPv4-Adressbereich, in CIDR-Notation. Beachten Sie, dass AWS einen Präfix in spezifischeren Bereichen ankündigen kann. Zum Beispiel könnte der Präfix 96.127.0.0/17 in der Datei als 96.127.0.0/21, 96.127.8.0/21, 96.127.32.0/19 und 96.127.64.0/18 angekündigt werden.
Typ: Zeichenfolge
Beispiel:
"ip_prefix": "198.51.100.2/24"
- ipv6_prefix
-
Der öffentliche IPv6-Adressbereich, in CIDR-Notation. Beachten Sie, dass AWS einen Präfix in spezifischeren Bereichen ankündigen kann.
Typ: Zeichenfolge
Beispiel:
"ipv6_prefix": "2001:db8:1234::/64"
- network_border_group
-
Der Name der Netzwerkgrenzgruppe, die ein eindeutiger Satz von Availability Zones oder Local Zones ist, aus denen AWS IP-Adressen ankündigt.
Typ: Zeichenfolge
Beispiel:
"network_border_group": "us-west-2-lax-1"
- region
-
Die AWS-Region oder
GLOBAL
für -Edge-Standorte. DieCLOUDFRONT
- undROUTE53
-Bereiche sindGLOBAL
.Typ: Zeichenfolge
Zulässige Werte:
ap-east-1
|ap-northeast-1
|ap-northeast-2
|ap-northeast-3
|ap-south-1
|ap-southeast-1
|ap-southeast-2
|ca-central-1
|cn-north-1
|cn-northwest-1
|eu-central-1
|eu-central-2
|eu-north-1
|eu-south-1
|eu-south-2
|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
|GLOBAL
Beispiel:
"region": "us-east-1"
- Service nicht zulässig
-
Die Untergruppe der IP-Adressbereiche. Die aufgelisteten Adressen für
API_GATEWAY
sind nur Egress. Geben SieAMAZON
an, um alle IP-Adressbereiche abzurufen (d. h. die jeweiligen Teilmengen sind auch in derAMAZON
-Teilmenge enthalten). Einige IP-Adressbereiche sind jedoch nur in derAMAZON
-Teilmenge (d. h. in keiner weiteren Teilmenge) enthalten.Typ: Zeichenfolge
Zulässige Werte:
AMAZON
|AMAZON_APPFLOW
|AMAZON_CONNECT
|API_GATEWAY
|CHIME_MEETINGS
|CHIME_VOICECONNECTOR
|CLOUD9
|CLOUDFRONT
|CLOUDFRONT_ORIGIN_FACING
|CODEBUILD
|DYNAMODB
|EBS
|EC2
|EC2_INSTANCE_CONNECT
|GLOBALACCELERATOR
|KINESIS_VIDEO_STREAMS
|ROUTE53
|ROUTE53_HEALTHCHECKS
|ROUTE53_HEALTHCHECKS_PUBLISHING
|ROUTE53_RESOLVER
|S3
|WORKSPACES_GATEWAYS
Beispiel:
"service": "AMAZON"
Filtern der JSON-Datei
Sie können ein Befehlszeilen-Tool herunterladen, um die Informationen so zu filtern, dass Sie nur die gewünschten Informationen erhalten.
Windows
AWS Tools for Windows PowerShell enthält ein Cmdlet (Get-AWSPublicIpAddressRange
) für die Analyse dieser JSON-Datei. Die folgenden Beispiele zeigen, wie Sie das Cmdlet verwenden. Weitere Informationen finden Sie im Blogpost über das Abfragen der öffentlichen IP-Adressbereiche für AWS
Beispiel 1. Abrufen des Erstellungsdatums
PS C:\>
Get-AWSPublicIpAddressRange -OutputPublicationDate
Wednesday, August 22, 2018 9:22:35 PM
Beispiel 2. Abrufen der Informationen für eine bestimmte Region
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 ...
Beispiel 3. Abrufen aller IP-Adressen
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
Beispiel 4. Abrufen aller IPv4-Adressen
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 ...
Beispiel 5. Abrufen aller IPv6-Adressen
PS C:\>
Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix
IpPrefix -------- 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
Beispiel 6. Abrufen aller IP-Adressen für einen bestimmten Service
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
Die folgenden Beispielbefehle verwenden das jq-Tool
Beispiel 1. Abrufen des Erstellungsdatums
$
jq .createDate < ip-ranges.json
"2016-02-18-17-22-15"
Beispiel 2. Abrufen der Informationen für eine bestimmte Region
$
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" }, ...
Beispiel 3. Abrufen aller IPv4-Adressen
$
jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json
23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
Beispiel 4. Abrufen aller IPv6-Adressen
$
jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json
2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
Beispiel 5. Abrufen aller IPv4-Adressen für einen bestimmten Service
$
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 ...
Beispiel 6. Abrufen aller IPv4-Adressen für einen bestimmten Service in einer bestimmten Region
$
jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json
34.228.4.208/28
Beispiel 7. Abrufen von Informationen für eine bestimmte Netzwerkgrenzgruppe
$
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 ...
Implementieren der Kontrolle ausgehenden Datenverkehrs
Um einer Instance nur den Zugriff auf AWS-Services zu erlauben, erstellen Sie eine Sicherheitsgruppe mit Regeln, die ausgehenden Datenverkehr zu den CIDR-Blöcken in der AMAZON
-Liste zulassen, abzüglich der CIDR-Blöcke, die auch in der EC2
-Liste enthalten sind. IP-Adressen in der EC2
-Liste können EC2-Instances zugewiesen werden.
Windows PowerShell
Das folgende PowerShell-Beispiel zeigt, wie Sie die IP-Adressen abrufen können, die in der AMAZON
-Liste, aber nicht in der EC2
-Liste vorhanden sind. Kopieren Sie das Skript und speichern Sie es in einer Datei mit dem Namen Select_address.ps1
.
$amazon_addresses = Get-AWSPublicIpAddressRange -ServiceKey amazon $ec2_addresses = Get-AWSPublicIpAddressRange -ServiceKey ec2 ForEach ($address in $amazon_addresses) { if( $ec2_addresses.IpPrefix -notcontains $address.IpPrefix) { ($address).IpPrefix } }
Sie können dieses Skript wie folgt ausführen:
PS C:\>
.\Select_address.ps1
13.32.0.0/15 13.35.0.0/16 13.248.0.0/20 13.248.16.0/21 13.248.24.0/22 13.248.28.0/22 27.0.0.0/22 43.250.192.0/24 43.250.193.0/24 ...
jq
Das folgende Beispiel zeigt, wie Sie die IP-Adressen in der Liste AMAZON
, aber nicht in der Liste EC2
für alle Regionen abrufen:
jq -r '[.prefixes[] | select(.service=="AMAZON").ip_prefix] - [.prefixes[] | select(.service=="EC2").ip_prefix] | .[]' < ip-ranges.json
52.94.22.0/24 52.94.17.0/24 52.95.154.0/23 52.95.212.0/22 54.239.0.240/28 54.239.54.0/23 52.119.224.0/21 ...
Das folgende Beispiel zeigt, wie Sie die Ergebnisse nach einer Region filtern:
jq -r '[.prefixes[] | select(.region=="us-east-1" and .service=="AMAZON").ip_prefix] - [.prefixes[] | select(.region=="us-east-1" and .service=="EC2").ip_prefix] | .[]' < ip-ranges.json
Python
Das folgende Python-Skript zeigt, wie Sie die IP-Adressen abrufen können, die in der AMAZON
-Liste, aber nicht in der EC2
-Liste vorhanden sind. Kopieren Sie das Skript und speichern Sie es in einer Datei mit dem Namen get_ips.py
.
#!/usr/bin/env python import requests ip_ranges = requests.get('https://ip-ranges.amazonaws.com/ip-ranges.json').json()['prefixes'] amazon_ips = [item['ip_prefix'] for item in ip_ranges if item["service"] == "AMAZON"] ec2_ips = [item['ip_prefix'] for item in ip_ranges if item["service"] == "EC2"] amazon_ips_less_ec2=[] for ip in amazon_ips: if ip not in ec2_ips: amazon_ips_less_ec2.append(ip) for ip in amazon_ips_less_ec2: print(str(ip))
Sie können dieses Skript wie folgt ausführen:
$
python ./get_ips.py
13.32.0.0/15 13.35.0.0/16 13.248.0.0/20 13.248.16.0/21 13.248.24.0/22 13.248.28.0/22 27.0.0.0/22 43.250.192.0/24 43.250.193.0/24 ...
Benachrichtigungen für AWS-IP-Adressbereiche
Wenn eine Änderung an den IP-Adressbereichen von AWS erfolgt, senden wir entsprechende Benachrichtigungen an die Abonnenten des Themas AmazonIpSpaceChanged
. Die Nutzlast enthält Informationen im folgenden Format:
{ "create-time":"
yyyy
-mm
-dd
Thh
:mm
:ss
+00:00", "synctoken":"0123456789
", "md5":"6a45316e8bc9463c9e926d5d37836d33
", "url":"https://ip-ranges.amazonaws.com/ip-ranges.json" }
- create-time
-
Datum und Zeitpunkt der Erstellung
Es kann vorkommen, dass Benachrichtigungen nicht in der richtigen Reihenfolge versandt werden. Daher wird empfohlen, die Zeitstempel zu überprüfen, um für die richtige Reihenfolge zu sorgen.
- synctoken
-
Zeitpunkt der Veröffentlichung (als Zeit seit Unix-Epoche)
- md5
-
Der kryptografische Hash-Wert der Datei
ip-ranges.json
. Sie können diesen Wert verwenden, um zu überprüfen, ob die heruntergeladene Datei beschädigt ist. - URL
-
Der Speicherort der Datei
ip-ranges.json
Wenn Sie benachrichtigt werden möchten, wenn eine Änderung an den IP-Adressbereichen von AWS erfolgt, können Sie den Empfang von Benachrichtigungen wie folgt unter Verwendung von Amazon SNS abonnieren.
So melden Sie sich für Benachrichtigungen für AWS-IP-Adressbereiche an
Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home
. -
Ändern Sie, falls erforderlich, die Region in der Navigationsleiste zu US East (N. Virginia). Sie müssen diese Region auswählen, da die SNS-Benachrichtigungen, die Sie abonnieren, in dieser Region erstellt wurden.
-
Wählen Sie im Navigationsbereich Subscriptions aus.
-
Wählen Sie Create subscription.
-
Führen Sie im Dialogfeld Create subscription Folgendes aus:
-
Kopieren Sie für Topic ARN den folgenden Amazon-Ressourcennamen (ARN):
arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged
-
Wählen Sie für Protocol das zu verwendende Protokoll aus (z. B.
Email
). -
Geben Sie für den Endpoint den Endpunkt ein, an den die Benachrichtigung zugestellt werden soll (z. B. Ihre E-Mail-Adresse).
-
Wählen Sie Create subscription (Abonnement erstellen) aus.
-
-
Sie werden über den angegebenen Endpunkt kontaktiert und gebeten, Ihr Abonnement zu bestätigen. Wenn Sie beispielsweise eine E-Mail-Adresse angegeben haben, erhalten Sie eine E-Mail-Nachricht mit der Betreffzeile
AWS Notification - Subscription Confirmation
. Befolgen Sie die Anweisungen, um Ihr Abonnement zu bestätigen.
Benachrichtigungen hängen von der Verfügbarkeit des Endpunkts ab. Aus diesem Grund sollten Sie die JSON-Datei regelmäßig überprüfen, um sicherzustellen, dass Sie über die neuesten Bereiche verfügen. Weitere Informationen zur Zuverlässigkeit von Amazon SNS erhalten Sie unter http://aws.amazon.com/sns/faqs/#Reliability
Wenn Sie diese Benachrichtigungen nicht mehr erhalten möchten, führen Sie die folgenden Schritte aus, um sich abzumelden.
So melden Sie sich von den Benachrichtigungen für AWS-IP-Adressbereiche ab
-
Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home
. -
Wählen Sie im Navigationsbereich Subscriptions aus.
-
Aktivieren Sie das Kontrollkästchen für das Abonnement.
-
Wählen Sie Actions und dann Delete subscriptions.
-
Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete (Löschen).
Weitere Informationen zu Amazon SNS finden Sie im Amazon-Simple-Notification-Service-Entwicklerhandbuch.
Versionshinweise
Die folgende Tabelle beschreibt Aktualisierungen der Syntax von ip-ranges.json
. Wir fügen außerdem neue Regionscodes bei jedem Regionsstart hinzu.
Beschreibung | Datum der Veröffentlichung |
---|---|
Der CLOUDFRONT_ORIGIN_FACING -Servicecode wurde hinzugefügt. |
12. Oktober 2021 |
Der ROUTE53_RESOLVER -Servicecode wurde hinzugefügt. |
24. Juni 2021 |
Der EBS -Servicecode wurde hinzugefügt. |
12. Mai 2021 |
Der KINESIS_VIDEO_STREAMS -Servicecode wurde hinzugefügt. |
19. November 2020 |
Die CHIME_MEETINGS - und CHIME_VOICECONNECTOR -Dienstcodes und wurden hinzugefügt. |
19. Juni 2020 |
Der AMAZON_APPFLOW -Servicecode wurde hinzugefügt. |
9. Juni 2020 |
Fügen Sie Unterstützung für die Netzwerkgrenzgruppe hinzu. | 7. April 2020 |
Der WORKSPACES_GATEWAYS -Servicecode wurde hinzugefügt. |
30. März 2020 |
Der ROUTE53_HEALTHCHECK_PUBLISHING -Servicecode wurde hinzugefügt. |
30. Januar 2020 |
Der API_GATEWAY -Servicecode wurde hinzugefügt. |
26. September 2019 |
Der EC2_INSTANCE_CONNECT -Servicecode wurde hinzugefügt. |
26. Juni 2019 |
Der DYNAMODB -Servicecode wurde hinzugefügt. |
25. April 2019 |
Der GLOBALACCELERATOR -Servicecode wurde hinzugefügt. |
20. Dezember 2018 |
Der AMAZON_CONNECT -Servicecode wurde hinzugefügt. |
20. Juni 2018 |
Der CLOUD9 -Servicecode wurde hinzugefügt. |
20. Juni 2018 |
Der CODEBUILD -Servicecode wurde hinzugefügt. |
19. April 2018 |
Der S3 -Servicecode wurde hinzugefügt. |
28. Februar 2017 |
Unterstützung für IPv6-Adressbereiche hinzugefügt. | 22. August 2016 |
Erstversion | 19. November 2014 |
Weitere Informationen
-
AMAZON_APPFLOW
– IP-Adressbereiche -
AMAZON_CONNECT
– Einrichten Ihres Netzwerks -
CLOUDFRONT
– Standorte und IP-Adressbereiche von CloudFront-Edge-Servern -
DYNAMODB
– IP-Adressbereiche -
EC2_INSTANCE_CONNECT
– Einrichten von EC2 Instance Connect -
GLOBALACCELERATOR
– Standort und IP-Adressbereiche von Global-Accelerator-Edge-Servern -
ROUTE53_HEALTHCHECKS
– IP-Adressbereiche von Amazon-Route-53-Servern -
ROUTE53_HEALTHCHECKS_PUBLISHING
– IP-Adressbereiche von Amazon-Route-53-Servern -
WORKSPACES_GATEWAYS
– PCoIP-Gatewayserver