Wie verwende ich einen Schnittstellen-VPC-Endpunkt, um auf eine private REST-API bei API Gateway in einem anderen Konto zuzugreifen?
Ich möchte einen Schnittstellen-VPC-Endpunkt (Virtual Private Cloud) verwenden, um auf eine private REST-API bei Amazon API Gateway zuzugreifen, die sich in einem anderen AWS-Konto befindet.
Kurzbeschreibung
Gehe wie folgt vor, um mit einem VPC-Schnittstellenendpunkt auf eine private REST-API bei API Gateway zuzugreifen, die sich in einem anderen AWS-Konto befindet:
- Erstelle einen Schnittstellenendpunkt in einer Amazon Virtual Private Cloud (Amazon VPC) in einem Konto (Konto A).
- Erstelle mit API Gateway eine private REST-API in einem zweiten Konto (Konto B).
- Konfiguriere eine Ressourcenrichtlinie für die private REST-API, die dem Schnittstellenendpunkt den Aufruf der API erlaubt.
- Richte eine Methode für die private REST-API ein.
- Stelle die private REST-API bereit.
- Rufe die private REST-API von Konto A aus auf, um die Konfiguration zu testen.
Hinweis: Die private REST-API von API Gateway und der VPC-Endpunkt müssen sich in derselben AWS-Region befinden.
Lösung
Erstelle einen Schnittstellenendpunkt in einer Amazon VPC in einem Konto (Konto A)
Einen neuen Schnittstellen-VPC-Endpunkt erstellen
Befolge von Konto A aus die Anweisungen unter Einen Schnittstellen-VPC-Endpunkt für API Gateway in der VPC erstellen.
Wichtig: Wähle für Richtlinie die Option Vollzugriff aus. Es hat sich bewährt, eine VPC-Endpunktrichtlinie zu verwenden, um den Endpunktzugriff anhand der API-ID einzuschränken. Ebenso hat es sich bewährt, die API-Gateway-Ressourcenrichtlinie zu verwenden, um den Endpunktzugriff durch den Prinzipal einzuschränken. Weitere Informationen findest du unter Berechtigungen mit den geringsten Rechten anwenden.
Gehe beim Erstellen des Schnittstellenendpunkts wie folgt vor:
- Es hat sich bewährt, mehrere Subnetze in verschiedenen Availability Zones auszuwählen. Wenn du Subnetze über mehrere Availability Zones hinweg konfigurierst, ist der Schnittstellenendpunkt widerstandsfähiger gegenüber potenziellen Ausfällen der Availability Zones.
- Aktiviere Privates DNS, um ein öffentliches oder privates DNS für die Verbindung mit der privaten REST-API zu verwenden.
Hinweis: Wenn du „Privates DNS“ für einen Schnittstellen-VPC-Endpunkt aktivierst, kannst du von der VPC aus nicht auf öffentliche APIs bei API Gateway zugreifen. Weitere Informationen findest du unter Warum erhalte ich den Fehler „HTTP 403 Forbidden“, wenn ich von einer VPC aus eine Verbindung zu meinen API-Gateway-APIs herstelle? - Die Sicherheitsgruppen müssen über eine Regel verfügen, die eingehenden HTTPS-Datenverkehr über TCP-Port 443 von einem IP-Adressbereich in der VPC zulässt. Die Regel kann auch aus einer anderen Sicherheitsgruppe in der VPC stammen.
Hinweis: Wenn du keine Sicherheitsgruppe hast, die eine dieser Anforderungen erfüllt, erstelle eine neue Sicherheitsgruppe für die VPC. Wenn du keine Sicherheitsgruppe angibst, wird den Endpunkt-Netzwerkschnittstellen eine Standard-Sicherheitsgruppe zugeordnet.
Abrufen der VPC-Endpunkt-ID des Schnittstellenendpunkts
Nachdem du den Schnittstellenendpunkt erstellt hast, wird die VPC-Endpunkt-ID angezeigt. Kopiere die VPC-Endpunkt-ID des neuen Schnittstellenendpunkts, zum Beispiel: vpce-1a2b3c456d7e89012.
Hinweis: Verwende diese VPC-Endpunkt-ID, wenn du die private REST-API erstellst und konfigurierst.
Abrufen des öffentlichen DNS-Namens des Schnittstellenendunkts
Die Seite Endpunkte wird in der Amazon VPC-Konsole angezeigt. Kopiere auf der Registerkarte Details auf der Seite Endpunkte in der Spalte DNS-Namen den öffentlichen DNS-Namen für den Schnittstellenendpunkt. Zum Beispiel: vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com.
Erstellen einer privaten REST-API mit API Gateway in einem zweiten Konto (Konto B)
- Öffne in Konto B die API-Gateway-Konsole.
- Wähle API erstellen aus.
- Wähle für API-Typ auswählen unter REST API Private die Option Build aus.
- Gib unter API-Details die folgenden Informationen ein:
Gib für API-Name einen Namen ein.
(Optional) Gib für Beschreibung eine Beschreibung ein.
Lege den Endpunkttyp fest und setze ihn auf Privat.
Füge für VPC-Endpunkt-IDs die Schnittstellenendpunkt-ID ein. Wähle anschließend Hinzufügen.
Hinweis: Wenn du den Schnittstellenendpunkt der privaten REST-API zuordnest, generiert API Gateway einen neuen Alias-Datensatz bei Amazon Route 53. Du kannst den Route53-Alias verwenden, um auf deine private API zuzugreifen. - Wähle API erstellen aus.
Weitere Informationen findest du unter Erstellen einer privaten API.
Konfigurieren einer Ressourcenrichtlinie für die private REST-API, die dem Schnittstellenendpunkt den Aufruf der API ermöglicht
- Wähle im Navigationsbereich der API-Gateway-Konsole unter der API die Option Ressourcenrichtlinie aus.
- Gib auf der Seite Ressourcenrichtlinie das folgende Beispiel für eine Ressourcenrichtlinie in das Textfeld ein:
Hinweis: Ersetze vpce-1a2b3c456d7e89012 durch die Schnittstellenendpunkt-ID.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*/*/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c456d7e89012" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*/*/*" } ] }
Weitere Informationen findest du unter Eine Ressourcenrichtlinie für eine private API einrichten.
Einrichten einer Methode für die private REST-API
- Wähle im Navigationsbereich der API-Gateway-Konsole unter deiner API die Option Ressourcen aus.
- Wähle im Bereich Ressourcen die Option Aktionen und dann Methode erstellen aus.
- Wähle in der Dropdown-Liste unter dem / resource-Knoten die Option ANY (BELIEBIG) aus und klicke dann auf das Häkchensymbol.
- Wähle im Bereich / - ANY - Setup als Integrationstyp die Option Pseudo aus.
Hinweis: Eine Pseudo-Integration reagiert auf jede Anforderung, die sie erreicht. - Wähle Speichern aus.
Weitere Informationen findest du unter Methoden für REST-APIs in API Gateway.
Bereitstellen der privaten REST-API
- Wähle im Bereich Ressourcen der API-Gateway-Konsole die Option Aktionen und dann API bereitstellen aus.
- Gib im Dialogfeld API bereitstellen die folgenden Informationen ein:
Wähle für Bereitstellungsstufe die Option [New Stage] aus.
Gib für den Abschnittsnamen, einen Namen ein. Zum Beispiel dev oder test. - Wähle Bereitstellen aus.
- Suche im Bereich Stage Editor (Stufen-Editor) nach der Meldung If Private DNS is enabled, use this URL: (Wenn „Private DNS“ aktiviert ist, verwende diese URL). Kopiere die Aufruf-URL deiner privaten REST-API.
Hinweis: Verwende die Aufruf-URL der privaten REST-API, um das Setup zu testen.
Weitere Informationen findest du unter Bereitstellen einer privaten API.
Aufrufen der privaten REST-API von Konto A aus, um das Setup zu testen
- Starte in Konto A eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance in derselben VPC, in der sich der Schnittstellenendpunkt befindet.
Wichtig: Wähle die Sicherheitsgruppe aus, die du deinem Schnittstellenendpunkt zugeordnet hast. - Stelle eine Verbindung zur Amazon-EC2-Instance her.
Hinweis: Für eine EC2-Instance können Gebühren in deinem AWS-Konto anfallen. Wenn du eine Instance zum Testen erstellst, beende die Instance, wenn du fertig bist, um weitere Gebühren zu vermeiden. - Führe von der Befehlszeile der EC2-Instance aus einen der folgenden curl-Befehle aus, um die private REST-API in Konto B aufzurufen.
Hinweis: Weitere Informationen findest du unter Aufrufen der privaten API mithilfe endpunktspezifischer öffentlicher DNS-Host-Namen.
Bei einem privaten DNS-Namen
Führe den folgenden Befehl aus:
Hinweis: Ersetze https://a1bc234d5e.execute-api.region.amazonaws.com/stage-name durch die Aufruf-URL der privaten API. Dieser Befehl funktioniert nur, wenn du „Privates DNS“ für den Schnittstellenendpunkt aktiviert hast. Weitere Informationen findest du unter Aufrufen einer privaten API mit privaten DNS-Namen.curl -i https://a1bc234d5e.execute-api.region.amazonaws.com/stage-name
Bei einem Route53-Alias
Führe den folgenden Befehl aus:
Hinweis: Ersetze a1bc234d5e durch die ID der API, vpce-1a2b3c456d7e89012 durch die Schnittstellenendpunkt-ID und region durch die Region deiner API. Ersetze stage-name durch den Namen der Stufe, auf der du die private API bereitgestellt hast. Weitere Informationen findest du unter Aufrufen einer privaten API mit einem Route53-Alias.curl -i https://a1bc234d5e-vpce-1a2b3c456d7e89012.execute-api.region.amazonaws.com/stage-name
Bei einem öffentlichen DNS-Namen mit einem Host-Header
Führe den folgenden Befehl aus:
Hinweis: Ersetze vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com durch den öffentlichen DNS-Namen des Schnittstellenendpunkts und stage-name durch den Namen der Stufe, auf der du die private API bereitgestellt hast. Ersetze a1bc234d5e.execute-api.region.amazonaws.com durch die Aufruf-URL der privaten API.curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "Host: a1bc234d5e.execute-api.region.amazonaws.com"
Bei einem öffentlichen DNS-Namen mit dem x-apigw-api-id-Header
Führe den folgenden Befehl aus:
Hinweis: Ersetze vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com durch den öffentlichen DNS-Namen des Schnittstellenendpunkts und stage-name durch den Namen der Stufe, auf der du die private API bereitgestellt hast. Ersetze a1bc234d5e durch die ID deiner API.curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "x-apigw-api-id:a1bc234d5e" - Überprüfe die Befehlsausgabe. API Gateway gibt eine 200-OK-Antwort zurück, wenn die Verbindung erfolgreich hergestellt wurde.
Ähnliche Informationen
Über einen Schnittstellen-VPC-Endpunkt auf einen AWS-Service zugreifen
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 7 Monaten