AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie behebe ich Probleme, wenn ich eine Verbindung zu einem privaten API-Endpunkt von API Gateway herstelle?
Ich möchte Probleme beheben, wenn ich eine Verbindung zu meinem privaten API-Endpunkt von Amazon API Gateway in Amazon Virtual Private Cloud (Amazon VPC) herstelle.
Kurzbeschreibung
AWS-Ressourcen in Amazon VPC können aus den folgenden Gründen möglicherweise keine Verbindung zu einem privaten API-Endpunkt herstellen:
- Du hast die API Gateway-Ressourcenrichtlinie für den privaten API-Endpunkt nicht richtig konfiguriert.
- Du hast die VPC-Endpunktrichtlinie für den Schnittstellen-VPC-Endpunkt nicht richtig konfiguriert.
- Du hast die Regeln für eine Amazon-VPC-Sicherheitsgruppe nicht richtig konfiguriert.
- Die Aufruf-URL der privaten API enthält nicht die richtigen DNS-Namen.
- Du hast den privaten benutzerdefinierten Domain-Namen keinem VPC-Endpunkt zugeordnet.
- Du hast die Ressourcenrichtlinie für den privaten benutzerdefinierten Domain-Namen nicht richtig konfiguriert.
Um die Ursache zu ermitteln, kannst du Amazon CloudWatch Logs für die API aktivieren und die Protokolle überprüfen.
Wenn die API-Anforderung nach der Aktivierung von CloudWatch Logs keine Protokolle generiert, hat die Anforderung den Endpunkt nicht erreicht. Wenn die API-Anforderungen den Endpunkt nicht erreichen, überprüfe, ob du die Aufruf-URL der privaten API korrekt konfiguriert hast.
Weitere Informationen findest du unter Wie finde ich API Gateway-REST-API-Fehler in meinen CloudWatch-Protokollen?
Hinweis: Eine falsch konfigurierte API Gateway-Ressourcenrichtlinie oder ein falscher DNS-Name in der Aufruf-URL des privaten API-Endpunkts können zu Verbindungsproblemen führen.
Lösung
Bestätigen der Fehlerursache
Führe die folgenden Schritte aus:
- Schalte CloudWatch Logs für die private REST-API ein.
- Wähle für Protokollstufe die Option INFO und dann Umfassende Anforderungs-/Antwortdaten protokollieren aus.
- Sieh dir die Ausführungsprotokolle der REST-API in CloudWatch an, um die Ursache des Fehlers zu ermitteln.
Wenn API-Anforderungen den Endpunkt erreichen, erscheint eine Fehlermeldung, die einem der folgenden Beispiele ähnelt:
- „User: anonymous is not authorized to perform: execute-api:Invoke on resource:“
- „SSL: no alternative certificate subject name matches target host name custom-domain.com/resource“
- „Connection timed out“
- „Could not resolve host: https://example.com/resource“
„User: anonymous is not authorized to perform: execute-api:Invoke on resource:“
Konfiguriere die folgenden Richtlinien, um dieses Problem zu beheben:
- Die API-Gateway-Ressourcenrichtlinie der privaten API muss den Datenverkehr vom Schnittstellen-VPC-Endpunkt oder der Quell-VPC zum API-Endpunkt zulassen.
- Die VPC-Endpunktrichtlinie muss dem Client den Zugriff auf den privaten API-Endpunkt ermöglichen. Dies ist die Ressourcenrichtlinie für den execute-api-Service.
- Die Ressourcenrichtlinie des benutzerdefinierten Domain-Namens muss den Zugriff auf die VPC-Endpunkte ermöglichen, um den privaten benutzerdefinierten Domain-Namen aufzurufen. Standardmäßig stellt API Gateway einen benutzerdefinierten Domain-Namen mit einer ausdrücklichen deny (Verweigerung) in der Ressourcenrichtlinie des benutzerdefinierten Domain-Namens bereit. Weitere Informationen findest du unter Tutorial: Erstellen und Aufrufen eines benutzerdefinierten Domain-Namens für private APIs.
Wichtig: Wenn du die Ressourcenrichtlinie der API änderst, stelle die API auf der Stufe bereit, um die Änderungen zu speichern.
„SSL: no alternative certificate subject name matches target host name custom-domain.com/resource“
Um dieses Problem zu beheben, überprüfe, ob du private benutzerdefinierte Domain-Namen-Zugriffszuordnungen für den privaten VPC-Endpunkt für den execute-api-Service erstellt hast.
„Connection timed out“
Gehe wie folgt vor, um Probleme mit dem Verbindungs-Timeout zu beheben:
-
Stelle sicher, dass ein API Gateway-execute-api-VPC-Endpunkt in der VPC vorhanden ist, in der du deinen Client hostest. Stelle dann sicher, dass sich der Endpunkt in derselben AWS-Region wie die private API befindet. Wenn der Endpunkt nicht existiert, erstelle einen Schnittstellen-VPC-Endpunkt für API Gateway execute-api.
-
Verwende traceroute, um zu überprüfen, ob der Client, der die private API aufruft, in derselben VPC existiert oder mit dem VPC-Endpunkt auf die VPC zugreifen kann.
Führe die folgenden Befehle aus, um traceroute zu installieren:
Amazon Linux:
sudo yum install tracerouteUbuntu:
sudo apt-get install tracerouteFühre den folgenden Befehl aus, um traceroute zum Testen der Konnektivität zu verwenden:
sudo traceroute -n -T -p 443 VPC-endpoint IP-addressHinweis: Das Argument -T -p 443 -n führt eine TCP-basierten Ablaufverfolgung auf Port 443 durch. Ersetze die VPC-Endpunkt-IP-Adresse durch die IP-Adresse des VPC-Endpunkts.
-
Stelle sicher, dass du die Regeln für die Amazon VPC-Sicherheitsgruppen korrekt konfiguriert hast.
Um die Amazon VPC-Sicherheitsgruppen zu testen, führe den folgenden Befehl auf dem Client aus, der Anforderungen an den privaten API-Endpunkt stellt:telnet public-dns-hostname.execute-api.region.vpce.amazonaws.com 443Hinweis: Ersetze public-dns-hostname durch die öffentlichen DNS-Hostnamen, die die VPC-Endpunkt-ID für die API enthalten. Ersetze außerdem region durch die Region, in der sich der Schnittstellen-VPC-Endpunkt befindet.
Oder führe den folgenden Befehl vom Client aus, der Anforderungen an den benutzerdefinierten Domain-Namen der privaten API stellt:
telnet custom-domain-name 443Hinweis: Ersetze custom-domain-name durch deinen privaten API-Domain-Namen.
Wenn bei der Verbindung ein Timeout auftritt, hast du die Regeln für die Amazon VPC-Sicherheitsgruppen nicht richtig konfiguriert.
Die anfordernde Ressource muss über eine Sicherheitsgruppenregel verfügen, die ausgehenden TCP-Port 443-Datenverkehr zum IP-Adressbereich oder zur Sicherheitsgruppe des VPC-Endpunkts zulässt. Außerdem muss der VPC-Endpunkt über eine Sicherheitsgruppenregel verfügen, die eingehenden TCP-Port 443 Datenverkehr aus dem IP-Adressbereich oder der Sicherheitsgruppe der anfordernden Ressource zulässt.
Weitere Informationen findest du unter Wie schränke ich den Datenverkehr zu und von Amazon VPC-Ressourcen ein?
„Could not resolve host:https://www.example.com/resource“
Gehe wie folgt vor, um dieses Problem zu beheben:
- Stelle sicher, dass du der von Amazon Route 53 gehosteten Zone die richtige VPC zugeordnet hast.
- Stelle sicher, dass du den Datensatz für den benutzerdefinierten Domain-Namen in der gehosteten Route 53-Zone mit Ziel als Alias für den VPC-Endpunkt-DNS-Namen erstellt hast.
Teste, ob die Domain des privaten API-Endpunkts korrekt mit der IP-Adresse des VPC-Endpunkts übereinstimmt
Hinweis: Stelle sicher, dass sich der Client in der VPC befindet, in der der VPC-Endpunkt execute-api vorhanden ist.
Führe die folgenden Schritte aus:
- Führe den folgenden nslookup-Befehl auf dem Client aus, der Anforderungen an den privaten API-Endpunkt stellt:
Hinweis: Ersetze restapi-id durch die ID deiner privaten API und region durch die Region, in der sich dein privater API-Endpunkt befindet.nslookup restapi-id.execute-api.region.amazonaws.com - Führe den folgenden Befehl nslookup vom Client aus, der Anforderungen an den benutzerdefinierten Domain-Namen der privaten API stellt:
Hinweis: Ersetze custom-domain-name durch den Domain-Namen deines privaten APIs. Eine erfolgreiche Ausgabe zeigt die IP-Adressen des privaten VPC-Endpunkts.nslookup custom-domain-name - Führe den folgenden nslookup-Befehl aus:
Hinweis: Ersetze public-dns-hostname durch die öffentlichen DNS-Hostnamen, die die VPC-Endpunkt-ID für die API enthalten. Ersetze region durch die Region, in der sich der Schnittstellen-VPC-Endpunkt befindet. Eine erfolgreiche Ausgabe zeigt die IP-Adressen des privaten VPC-Endpunkts.nslookup public-dns-hostname.execute-api.region.vpce.amazonaws.com - Vergleiche die IP-Adressen in den Ausgaben der einzelnen Befehle. Wenn die IP-Adressen der einzelnen Befehlsausgaben übereinstimmen, funktioniert die Einrichtung wie erwartet.
Gehe wie folgt vor, um ein privates DNS für den VPC-Endpunkt zu aktivieren.
- Öffne die Amazon-VPC-Konsole.
- Wähle im Bereich Endpunkte den Schnittstellen-VPC-Endpunkt aus.
- Wähle Aktionen aus.
- Wähle Private DNS-Namen ändern aus.
- Wähle Privaten DNS-Namen aktivieren aus und wähle dann Änderungen speichern aus.
Die API-Anforderung erzeugt keine CloudWatch-Protokolle, nachdem du CloudWatch Logs aktiviert hast
Gehe wie folgt vor, um dieses Problem zu beheben:
- Konfiguriere die API-Gateway-Ressourcenrichtlinie des privaten API-Endpunkts korrekt.
- Formatiere die Aufruf-URL der privaten API korrekt, um auf den privaten API-Endpunkt zuzugreifen.
Hinweis: Wenn du ein privates DNS aktiviert hast, musst du endpunktspezifische öffentliche DNS-Hostnamen verwenden. Wenn du kein privates DNS aktiviert hast, verwende private DNS-Namen. - Ordne den benutzerdefinierten Domain-Namen der privaten API der richtigen API-Stufe zu.
Ähnliche Informationen
Wie überwache ich den Datenverkehr in meiner VPC mithilfe von Ablaufprotokollen?
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr