Warum erhalte ich die Fehlermeldung „HTTP 403 Forbidden“, wenn ich von einer VPC aus eine Verbindung zu meinen API-Gateway-APIs herstelle?

Lesedauer: 4 Minute
0

Ich erhalte die Fehlermeldung „HTTP 403 Forbidden“, wenn ich meine Amazon API Gateway-API von meiner Virtual Private Cloud (VPC) aus aufrufe.

Kurzbeschreibung

Der Fehler „HTTP 403 Forbidden“ tritt auf, wenn du DNS für einen VPC-Endpunkt der API Gateway-Schnittstelle aktivierst, der einer VPC zugeordnet ist. In diesem Fall werden alle Anforderungen von der VPC an die API-Gateway-APIs an diesen Schnittstellen-VPC-Endpunkt weitergeleitet. Du kannst jedoch keinen VPC-Endpunkt verwenden, um eine Verbindung zu öffentlichen APIs herzustellen.

Der private DNS-Name eines VPC-Endpunkts hat das Format *.execute-api.exampleRegion.amazonaws.com, wobei das Zeichen * ein Platzhalter für die API-ID ist. Dieses Format entspricht der standardmäßigen Aufruf-URL des API Gateways für öffentliche und private APIs.

Wenn ein privates DNS für einen VPC-Endpunkt aktiviert ist, wird die Aufruf-URL der API durch den privaten DNS-Namen abgedeckt. Wenn eine DNS-Abfrage für eine öffentliche API innerhalb einer VPC aufgelöst wird, verweist das DNS auf die private IP des zugehörigen VPC-Endpunkts. Dann wird der API-Aufruf nicht über das Internet, sondern über den VPC-Endpunkt an die öffentliche API weitergeleitet. Da VPC-Endpunkte Datenverkehr nur an private APIs weiterleiten können, ist das Ergebnis ein HTTP 403-Fehler.

Du erhältst außerdem einen 403-Fehler, wenn du die Aufruf-URL execute-api verwendest, um mit AWS Direct Connect eine Verbindung zu privaten APIs On-Premises herzustellen.

Lösung

Vergewissere dich, dass ein privates DNS für einen Schnittstellen-VPC-Endpunkt aktiviert ist, der deiner VPC zugeordnet ist

Überprüfe die VPC, um zu sehen, ob es einen Schnittstellen-VPC-Endpunkt für den Zugriff auf eine private API gibt. Wenn es einen Schnittstellen-Endpunkt gibt, überprüfe, ob die Einstellungen für das private DNS aktiviert sind. Weitere Informationen findest du unter DNS-Attribute für deine VPC.

Mit aktiviertem privaten DNS eine Verbindung zu öffentlichen APIs herstellen

Wenn das private DNS aktiviert ist, richte Edge-optimierte benutzerdefinierte Domain-Namen oder Regionale benutzerdefinierte Domain-Namen ein, um eine Verbindung zu öffentlichen APIs herzustellen.

Wenn die Clients eine Verbindung über ein On-Premises-Netzwerk herstellen, richte einen Amazon Route 53 Resolver-Endpunkt für eingehenden Datenverkehr ein. Um die Aufruf-URL execute-api zu verwenden, leite alle privaten DNS-Abfragen von deinem Remote-Netzwerk an den Endpunkt für eingehenden Datenverkehr weiter.

Wichtig: Die VPC-Ressourcen müssen über eine Internetkonnektivität verfügen, um eine Verbindung zu den öffentlichen APIs herzustellen. Verwende außerdem A type alias records (Alias-Datensätze vom Typ A), um DNS-Datensätze für einen regionalen benutzerdefinierten Domain-Namen zu konfigurieren. Verwende jedoch entweder Alias-Datensätze vom Typ A oder CNAME-Datensätze für Edge-optimierte benutzerdefinierte Domain-Namen.

Eine Verbindung zu öffentlichen APIs herstellen, wenn das private DNS nicht aktiviert ist

Wenn die VPC über die Berechtigung verfügt, auf öffentliche APIs zuzugreifen, verwende das öffentliche DNS, um eine Verbindung zu öffentlichen APIs herzustellen. Weitere Informationen findest du unter Steuern und Verwalten des Zugriffs auf REST-APIs in API Gateway.

(Optional) Änderung der privaten DNS-Einstellung für einen VPC-Schnittstellen-Endpunkt

Du kannst die private DNS-Einstellung für einen Schnittstellen-VPC-Endpunkt jederzeit ändern. Änderungen dieser Einstellung wirken sich auf die Auflösung der Stufen-URL einer API zur privaten IP des Schnittstellen-VPC-Endpunkts aus.

Gehe wie folgt vor, um die private DNS-Einstellung für einen Schnittstellen-VPC-Endpunkt zu ändern:

  1. Öffne die Amazon-VPC-Konsole.
  2. Öffne den Bereich Endpunkte.
  3. Wähle deinen Schnittstellen-VPC-Endpunkt aus.
  4. Wähle Aktionen und anschließend Private DNS-Namen ändern aus.
  5. Aktiviere oder deaktiviere für Privaten DNS-Namen aktivieren das Kontrollkästchen Für diesen Endpunkt aktivieren.
  6. Wähle Private DNS-Namen ändern aus.

Hinweis: Änderungen an der privaten DNS-Einstellung wirken sich darauf aus, wie Benutzer von einer VPC aus eine Verbindung zu privaten APIs und öffentlichen APIs herstellen können.

Weitere Informationen findest du unter Anzeigen und Aktualisieren von DNS-Attributen für deine VPC.

Ähnliche Informationen

Greife über einen Schnittstellen-VPC-Endpunkt auf einen AWS-Service zu

Benutzerdefinierter Domain-Name für REST-APIs in API Gateway