Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bevor Sie eine private API erstellen, brauchen Sie zunächst einen VPC-Endpunkt für API Gateway. Als Nächstes erstellen Sie Ihre private API und fügen ihr eine Ressourcenrichtlinie hinzu. Optional können Sie Ihren VPC-Endpunkt mit Ihrer privaten API verknüpfen, um den Aufruf Ihrer API zu vereinfachen. Im letzten Schritt stellen Sie Ihre API bereit.
Die entsprechende Vorgehensweise wird nachfolgend beschrieben. Sie können eine private REST-API mit dem AWS Management Console, AWS CLI oder einem AWS SDK erstellen.
Voraussetzungen
Sie brauchen eine vollständig konfigurierte VPC, um diese Schritte ausführen zu können. Informationen zum Erstellen einer VPC finden Sie unter Erstellen einer VPC im Amazon-VPC-Benutzerhandbuch. Aktivieren Sie ihr privates DNS, um allen empfohlenen Schritten für die Erstellung Ihrer VPC befolgen zu können. Auf diese Weise können Sie Ihre API innerhalb einer VPC aufrufen, ohne den Host oder den x-apigw-api-id
-Header übergeben zu müssen.
Die Attribute enableDnsSupport
und enableDnsHostnames
Ihrer VPC müssen auf true
gesetzt sein, um das private DNS aktivieren zu können. Weitere Informationen finden Sie unter DNS-Support für Ihre VPC und Aktualisieren des DNS-Supports für Ihre VPC.
Schritt 1: Erstellen eines VPC-Endpunkts für API Gateway in Ihrer VPC
Im Folgenden sehen Sie, wie Sie einen VPC-Endpunkt für API Gateway erstellen. Um einen VPC-Endpunkt für API Gateway zu erstellen, geben Sie die execute-api
Domain an, AWS-Region in der Sie Ihre private API erstellen. Die execute-api
-Domain is der API-Gateway-Komponenten-Service für die API-Ausführung.
Beim Erstellen des VPC-Endpunkts für API Gateway legen Sie auch die DNS-Einstellungen fest. Wenn Sie das private DNS deaktivieren, können Sie nur über ein öffentliches DNS auf Ihre API zugreifen. Weitere Informationen finden Sie unter Problem: Ich kann keine Verbindung zwischen einem API-Gateway-VPC-Endpunkt und meiner öffentlichen API herstellen.
So erstellen Sie einen Schnittstellen-VPC-Endpunkt für API Gateway
-
Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon VPC-Konsole unter https://console.aws.amazon.com/vpc/
. -
Wählen Sie im Navigationsmenü unter Virtual Private Cloud die Option Endpunkte.
-
Wählen Sie Endpunkt erstellen aus.
-
(Optional) Geben Sie für Name-Tag einen Namen ein, um Ihren VPC-Endpunkt zu identifizieren.
-
Wählen Sie bei Service category (Servicekategorie) die Option AWS services (-Services) aus.
-
Geben Sie im Suchfeld Services
execute-api
ein. Wählen Sie dann den API Gateway Gateway-Dienstendpunkt aus, auf AWS-Region dem Sie Ihre API erstellen möchten. Der Dienstname sollte wie folgt aussehen:com.amazonaws.us-east-1.execute-api
, und der Typ sollte Interface sein. -
Wählen Sie für VPC die VPC aus, in der Sie den Endpunkt erstellen möchten.
-
(Optional) Wenn Sie Privaten DNS-Namen aktivieren deaktivieren wollen, wählen Sie Zusätzliche Einstellungen aus und löschen Sie den Feldinhalt für Privaten DNS-Namen aktivieren.
-
Wählen Sie für Subnetze die Availability Zones aus, in denen Sie die Endnkt-Netzwerkschnittstellen für die Endpunkte erstellt haben. Zur Verbesserung der Verfügbarkeit Ihrer API wählen Sie mehrere Subnetze aus.
-
Wählen Sie für Security group (Sicherheitsgruppe) die Sicherheitsgruppe aus, die den VPC-Endpunktnetzwerkschnittstellen zugeordnet werden soll.
Die von Ihnen ausgewählte Sicherheitsgruppe muss so konfiguriert sein, dass eingehender HTTPS-Datenverkehr über TCP-Port 443 von einem IP-Adressbereich in Ihrer VPC oder einer anderen Sicherheitsgruppe in Ihrer VPC zugelassen wird.
-
Führen Sie für Richtlinie einen der folgenden Schritte aus:
Wenn Sie Ihre private API nicht erstellt haben oder keine benutzerdefinierte VPC-Endpunktrichtlinie konfigurieren möchten, wählen Sie Vollzugriff aus.
-
Wenn Sie bereits eine private API erstellt haben und eine benutzerdefinierte VPC-Endpunktrichtlinie konfigurieren möchten, geben Sie eine benutzerdefinierte VPC-Endpunktrichtlinie ein. Weitere Informationen finden Sie unter Verwenden Sie VPC-Endpunktrichtlinien für private Zwecke APIs in API Gateway.
Sie können die VPC-Endpunktrichtlinie nach dem Erstellen des VPC-Endpunkts aktualisieren. Weitere Informationen finden Sie unter Aktualisieren einer VPC-Endpunktrichtlinie.
-
Wählen Sie Endpunkt erstellen aus.
Kopieren Sie die resultierende VPC-Endpunkt-ID, da Sie sie u. U. bei späteren Schritten noch brauchen werden.
Schritt 2: Erstellen einer privaten API
Nachdem Sie Ihren VPC-Endpunkt erstellt haben, erstellen Sie nun eine private REST-API. Im folgenden Verfahren sehen Sie, wie Sie eine private API erstellen.
Erstellen einer privaten API
-
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan
. -
Wählen Sie Create API (API erstellen) aus.
-
Wählen Sie unter REST-API die Option Build (Erstellen) aus.
-
Geben Sie unter Name einen Namen ein.
(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
-
Wählen Sie für API endpoint type (API-Endpunkttyp) die Option Private (Privat) aus.
-
(Optional) Geben Sie für VPC-Endpoint IDs eine VPC-Endpunkt-ID ein.
Wenn Sie Ihrer privaten API eine VPC-Endpunkt-ID zuordnen, können Sie Ihre API von Ihrer VPC aus aufrufen, ohne einen
Host
-Header zu überschreiben oder einenx-apigw-api-id header
zu übergeben. Weitere Informationen finden Sie unter (Optional) Zuordnen oder Aufheben der Zuweisung eines VPC-Endpunkts zu einer privaten API. -
Wählen Sie Create API (API erstellen) aus.
Nachdem Sie die Schritte oben abgeschlossen haben, können Sie der Anleitung unter Erste Schritte mit der REST-API-Konsole folgen, um Methoden und Integrationen für diese API einzurichten - Sie können die API jedoch noch nicht bereitstellen. Zur Bereitstellung Ihrer API folgen Sie Schritt 3 und fügen Ihrer API eine Ressourcenrichtlinie hinzu.
Schritt 3: Einrichten einer Ressourcenrichtlinie für eine private API
Ihre aktuelle private API ist für alle VPCs nicht zugänglich. Verwenden Sie eine Ressourcenrichtlinie, um Ihren VPCs und VPC-Endpunkten Zugriff auf Ihre privaten Daten zu gewähren. APIs Sie können in jedem AWS Konto Zugriff auf einen VPC-Endpunkt gewähren.
Ihre Ressourcenrichtlinie sollte aws:SourceVpc
- oder aws:SourceVpce
-Bedingungen für Zugriffsbeschränkungen enthalten. Wir empfehlen, dass Sie spezifische VPCs und VPC-Endpunkte identifizieren und keine Ressourcenrichtlinie erstellen, die den Zugriff für alle VPCs VPC-Endpunkte ermöglicht.
Im folgenden Verfahren sehen Sie, wie Sie eine Ressourcenrichtlinie an Ihre API anfügen.
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan
. Wählen Sie eine REST-API aus.
-
Wählen Sie im Hauptnavigationsbereich Ressourcenrichtlinie.
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie Vorlage auswählen und dann Quell-VPC aus.
-
Ersetzen Sie
{{vpcID}}
(einschließlich der geschweiften Klammern) durch Ihre VPC-ID. -
Wählen Sie Änderungen speichern.
Sie sollten u. U. auch vorgeben, welche Ressourcen Zugriff auf Ihren VPC-Endpunkt haben sollen. Verbinden Sie eine VPC-Endpunktrichtlinie mit Ihrem VPC-Endpunkt, um festzulegen, welche Ressourcen Zugriff auf Ihren VPC-Endpunkt haben sollen. Weitere Informationen finden Sie unter Verwenden Sie VPC-Endpunktrichtlinien für private Zwecke APIs in API Gateway.
(Optional) Zuordnen oder Aufheben der Zuweisung eines VPC-Endpunkts zu einer privaten API
Wenn Sie einen VPC-Endpunkt mit Ihrer privaten API verknüpfen, generiert API Gateway einen neuen Route-53-ALIAS-DNS-Eintrag. Sie können diesen Datensatz verwenden, um Ihren privaten Datensatz APIs genauso aufzurufen, wie Sie Ihren öffentlichen Eintrag aufrufen, APIs ohne einen Header zu überschreiben oder einen Host
Header zu übergeben. x-apigw-api-id
Die generierte Basis-URL liegt im folgenden Format vor:
https://
{rest-api-id}
-{vpce-id}
.execute-api.{region}
.amazonaws.com/{stage}
Sie können Ihrer privaten API bei oder nach der Erstellung einen VPC-Endpunkt zuordnen. Im folgenden Verfahren sehen Sie, wie Sie einen VPC-Endpunkt mit einer zuvor erstellten API verknüpfen.
Zuordnen eines VPC-Endpunkts zu einer privaten API
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan
. -
Wählen Sie Ihre private API aus.
-
Wählen Sie im Hauptnavigationsbereich Ressourcenrichtlinie.
-
Bearbeiten Sie Ihre Ressourcenrichtlinie, um Anrufe von Ihrem zusätzlichen VPC-Endpunkt zuzulassen.
-
Wählen Sie im Hauptnavigationsbereich API-Einstellungen.
-
Wählen Sie im Abschnitt API-Details die Option Bearbeiten aus.
-
Wählen Sie für VPC-Endpunkt IDs einen zusätzlichen VPC-Endpunkt aus. IDs
-
Wählen Sie Save (Speichern) aus.
-
Sie müssen Ihre API erneut bereitstellen, damit die Änderungen wirksam werden.
Schritt 4: Bereitstellen einer privaten API
Erstellen Sie eine API-Bereitstellung und verknüpfen sie mit einer Stufe. Im folgenden Verfahren sehen Sie, wie Sie Ihre private API bereitstellen.
Bereitstellen einer privaten API
Wählen Sie Ihre API aus.
Klicken Sie auf Deploy API.
Wählen Sie für Stufe die Option Neue Stufe aus.
Geben Sie unter Stage name (Stufenname) einen Namen für die Stufe ein.
(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
Wählen Sie Bereitstellen.
Fehlerbehebung für Ihre private API
Im Folgenden finden Sie Hinweise zur Fehlerbehebung bei Fehlern und Problemen, die bei der Erstellung einer privaten API auftreten können.
Problem: Ich kann keine Verbindung zwischen einem API-Gateway-VPC-Endpunkt und meiner öffentlichen API herstellen
Beim Erstellen Ihrer VPC haben Sie die Möglichkeit, die DNS-Einstellungen zu konfigurieren. Wir empfehlen, Ihr privates DNS für Ihre VPC zu aktivieren. Wenn Sie das private DNS deaktivieren, ist ein Zugriff auf Ihr API nur über das öffentliche DNS möglich.
Wenn Sie Ihr privates DNS aktivieren, können Sie von Ihrem VPC-Endpunkt aus nicht auf den Standardendpunkt einer öffentlichen API-Gateway-API zugreifen. Sie können auf eine API mit einem benutzerdefinierten Domainnamen zugreifen.
Wenn Sie einen benutzerdefinierten regionalen Domainnamen erstellen, verwenden Sie einen Aliaseintrag vom Typ A. Wenn Sie einen Edge-optimierten benutzerdefinierten Domainnamen erstellen, bestehen keine Einschränkungen für Ihren Datensatztyp. Sie können auf diese öffentlichen Dateien zugreifen, wenn privates DNS APIs aktiviert ist. Weitere Informationen finden Sie unter Problem: Verbindungsaufbau mit meiner öffentlichen API von einem API-Gateway-VPC-Endpunkt
Problem: Meine API gibt {"Message":"User:
anonymous is not authorized to perform: execute-api:Invoke on resource:
arn:aws:execute-api:us-east-1:********/****/****/"}
zurück
Wenn Sie in Ihrer Ressourcenrichtlinie den Principal auf einen AWS Prinzipal festlegen, wie zum Beispiel:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", ""Principal": { "AWS": [ "arn:aws:iam::account-id:role/developer", "arn:aws:iam::account-id:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, ... }
Dann müssen Sie die AWS_IAM
-Genehmigung für jede einzelne Methode in Ihrer API verwenden, andernfalls gibt Ihre API die o. g. Fehlermeldung zurück. Weitere Anweisungen zum Aktivieren der AWS_IAM
-Genehmigung für eine Methode finden Sie unter Methoden für REST APIs in API Gateway.
Problem: Ich bin mir nicht sicher, ob mein VPC-Endpunkt mit meiner API verknüpft ist
Wenn Sie einen VPC-Endpunkt mit Ihrer privaten API verknüpfen oder die Zuweisung aufheben, müssen Sie Ihre API erneut bereitstellen. Der Aktualisierungsvorgang kann aufgrund der DNS-Verbreitung einige Minuten dauern. Während dieser Zeit ist Ihre API verfügbar, aber die DNS-Propagierung für das neu generierte DNS ist URLs möglicherweise noch im Gange. Wenn Ihre neuen nach einigen Minuten nicht im DNS aufgelöst URLs werden, empfehlen wir Ihnen, Ihre API erneut bereitzustellen.