Warum erhalte ich den Fehler HTTP 403 Forbidden, wenn ich von einer VPC aus eine Verbindung zu meinen API-Gateway-APIs herstelle?

Lesedauer: 4 Minute
0

Ich rufe meine Amazon API Gateway-APIs von meiner Virtual Private Cloud (VPC) aus auf, erhalte aber den Fehler HTTP 403 Forbidden. Warum ist das so?

Kurzbeschreibung

Der Fehler HTTP 403 Forbidden tritt am häufigsten auf, wenn privates DNS für einen VPC-Endpunkt der API-Gateway-Schnittstelle aktiviert ist, der mit einer VPC verknüpft ist. In diesem Szenario werden alle Anfragen von der VPC an die API-Gateway-APIs an diesen Schnittstellen-VPC-Endpunkt weitergeleitet. Es ist jedoch nicht möglich, über einen VPC-Endpunkt eine Verbindung zu öffentlichen APIs herzustellen.

Der private DNS-Name eines VPC-Endpunkts hat das Format *.execute-api.<REGION>.amazonaws.com. Dieses Format entspricht der standardmäßigen Aufruf-URL des API Gateways für öffentliche und private APIs. Die standardmäßige Aufruf-URL einer öffentlichen API ist beispielsweise https://abcd1234.execute-api.us-east-1.amazonaws.com, wobei abcd1234 die API-ID und us-east-1 die AWS-Region der API ist.

Wenn ein privates DNS auf einem VPC-Endpunkt aktiviert ist, wird die Aufruf-URL der API durch den privaten DNS-Namen *.execute-api.us-east-1.amazonaws.com abgedeckt, wobei * ein Platzhalter für die API-ID ist. Wenn eine DNS-Abfrage für eine öffentliche API innerhalb einer VPC aufgelöst wird, verweist das aufgelöste DNS auf die private IP des zugehörigen VPC-Endpunkts und nicht auf die öffentliche IP der öffentlichen API. Der API-Aufruf wird dann anstatt über das Internet ü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.

Wenn privates DNS für Ihren Schnittstellen-VPC-Endpunkt nicht aktiviert ist oder es in Ihrer VPC keinen Endpunkt gibt, gehen Sie zum Abschnitt Mit öffentlichen APIs verbinden, wenn privates DNS nicht aktiviert ist.

Lösung

Vergewissern Sie sich, dass ein privates DNS für einen VPC-Schnittstellen-Endpunkt aktiviert ist, der Ihrer VPC zugeordnet ist

Überprüfen Sie Ihre VPC, um zu sehen, ob es einen Schnittstellen-VPC-Endpunkt für den Zugriff auf eine private API gibt. Wenn es einen Schnittstellenendpunkt gibt, überprüfen Sie, ob die Einstellungen für privates DNS aktiviert sind. Weitere Informationen finden Sie unter DNS-Attribute in Ihrer VPC.

Stellen Sie mit aktiviertem privaten DNS eine Verbindung zu öffentlichen APIs her

Wenn privates DNS aktiviert ist, richten Sie Edge-optimierte benutzerdefinierte Domainnamen oder regionale benutzerdefinierte Domainnamen ein, um eine Verbindung zu Ihren öffentlichen APIs herzustellen.

Wichtig: Ressourcen in Ihrer VPC, die versuchen, eine Verbindung zu Ihren öffentlichen APIs herzustellen, müssen über eine Internetverbindung verfügen. Wenn Sie DNS-Einträge für einen regionalen benutzerdefinierten Domainnamen konfigurieren, müssen Sie außerdem Aliaseinträge vom Typ A verwenden. Verwenden Sie bei Edge-optimierten benutzerdefinierten Domainnamen jedoch entweder Aliaseinträge vom Typ A oder CNAME-Einträge.

Stellen Sie eine Verbindung zu öffentlichen APIs her, wenn privates DNS nicht aktiviert ist

Wenn privates DNS im VPC-Endpunkt der Schnittstelle nicht aktiviert ist oder es in Ihrer Amazon Virtual Private Cloud (Amazon VPC)-Konfiguration keinen Endpunkt gibt, vergewissern Sie sich, dass Folgendes zutrifft:

Wenn Ihre VPC über die Berechtigung verfügt, auf Ihre öffentlichen APIs zuzugreifen, verwenden Sie öffentliches DNS, um eine Verbindung zu Ihren öffentlichen APIs herzustellen. Weitere Informationen finden Sie unter Steuern und Verwalten des Zugriffs auf eine REST-API im API Gateway.

(Optional) Ändern Sie die private DNS-Einstellung für einen VPC-Schnittstellen-Endpunkt

Benutzer können die private DNS-Einstellung für einen VPC-Schnittstellen-Endpunkt jederzeit ändern. Eine Änderung dieser Einstellung wirkt sich auf die Auflösung der Stage-URL einer API zur privaten IP des Schnittstellen-VPC-Endpunkts aus.

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

  1. Öffnen Sie in der Amazon VPC-Konsole den Bereich Endpunkte.
  2. Wählen Sie den VPC-Endpunkt der Schnittstelle aus.
  3. Wählen Sie Aktionen und anschließend Private DNS-Namen ändern aus.
  4. Aktivieren oder deaktivieren Sie für Privaten DNS-Namen aktivieren das Kontrollkästchen Für diesen Endpunkt aktivieren.
  5. Wählen Sie Private DNS-Namen ändern aus.

Weitere Informationen finden Sie unter DNS-Attribute für Ihre VPC anzeigen und aktualisieren.


Ähnliche Informationen

Greifen Sie über einen Schnittstellen-VPC-Endpunkt auf einen AWS-Service zu

Einrichtung benutzerdefinierter Domainnamen für REST-APIs

DNS-Attribute für Ihre VPC