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.
Tutorial: Erstellen Sie ein privates REST API
In diesem Tutorial erstellen Sie ein privates RESTAPI. Kunden können API nur von Ihrem Amazon aus darauf zugreifenVPC. Das API ist vom öffentlichen Internet isoliert, was eine übliche Sicherheitsanforderung ist.
Dieses Tutorial nimmt ungefähr 30 Minuten in Anspruch. Zunächst verwenden Sie eine AWS CloudFormation Vorlage, um einen AmazonVPC, einen VPC Endpunkt, eine AWS Lambda Funktion zu erstellen und eine EC2 Amazon-Instance zu starten, mit der Sie Ihre testenAPI. Als Nächstes verwenden Sie die, AWS Management Console um eine private zu erstellen API und eine Ressourcenrichtlinie anzuhängen, die den Zugriff nur von Ihrem VPC Endpunkt aus erlaubt. Zuletzt testen Sie IhreAPI.
Um dieses Tutorial abzuschließen, benötigen Sie ein AWS Konto und einen AWS Identity and Access Management Benutzer mit Konsolenzugriff. Weitere Informationen finden Sie unter Für die Verwendung von API Gateway einrichten.
In diesem Tutorial wird AWS Management Console verwendet. Eine AWS CloudFormation Vorlage, die diese API und alle zugehörigen Ressourcen erstellt, finden Sie unter template.yaml.
Themen
- Schritt 1: Erstellen von Abhängigkeiten
- Schritt 2: Erstellen Sie eine private API
- Schritt 3: Erstellen Sie eine Methode und Integration
- Schritt 4: Anhängen einer Ressourcenrichtlinie
- Schritt 5: Stellen Sie Ihre bereit API
- Schritt 6: Stellen Sie sicher, dass Ihr API nicht öffentlich zugänglich ist
- Schritt 7: Connect zu einer Instanz in Ihrem her VPC und rufen Sie Ihre auf API
- Schritt 8: Bereinigen
- Nächste Schritte: Automatisieren Sie mit AWS CloudFormation
Schritt 1: Erstellen von Abhängigkeiten
Laden Sie diese Vorlage herunter und entpacken Sie sie. AWS CloudFormation Sie verwenden die Vorlage, um alle Abhängigkeiten für Ihre privaten Daten zu erstellenAPI, einschließlich eines Amazon-VPC, eines VPC Endpunkts und einer Lambda-Funktion, die als Backend für Sie dient. API Sie erstellen das Private API später.
Um einen AWS CloudFormation Stapel zu erstellen
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie Stack erstellen und dann Mit neuen Ressourcen (Standard) aus.
-
Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen aus.
-
Wählen Sie die Vorlage aus, die Sie heruntergeladen haben.
-
Wählen Sie Weiter aus.
-
Geben Sie für Stack-Name die Zeichenfolge
private-api-tutorial
ein und klicken Sie auf Weiter. -
Wählen Sie in Stack-Optionen konfigurieren die Option Weiter aus.
-
Bestätigen Sie bei Funktionen, dass IAM Ressourcen in Ihrem Konto erstellt werden AWS CloudFormation können.
-
Wählen Sie Absenden aus.
AWS CloudFormation stellt die Abhängigkeiten für Sie API bereit, was einige Minuten dauern kann. Wenn der Status Ihres AWS CloudFormation Stacks CREATE_ istCOMPLETE, wählen Sie Outputs. Notieren Sie sich Ihre VPC Endpunkt-ID. Sie benötigen sie für spätere Schritte in diesem Tutorial.
Schritt 2: Erstellen Sie eine private API
Sie erstellen ein privates API Konto, damit nur Ihre Kunden VPC darauf zugreifen können.
Um ein privates zu erstellen API
Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway
an. -
Wählen Sie Erstellen API und dann für RESTAPIBuild aus.
-
Geben Sie als APINamen ein
private-api-tutorial
. -
Wählen Sie als APIEndpunkttyp die Option Privat aus.
-
Geben Sie als VPCEndpunkt IDs die VPC Endpunkt-ID aus den Ausgaben Ihres AWS CloudFormation Stacks ein.
-
Wählen Sie Create API.
Schritt 3: Erstellen Sie eine Methode und Integration
Sie erstellen eine GET
Methode und eine Lambda-Integration, um GET
Anfragen an Ihre API zu bearbeiten. Wenn ein Client Ihren aufruftAPI, sendet API Gateway die Anfrage an die Lambda-Funktion, die Sie in Schritt 1 erstellt haben, und gibt dann eine Antwort an den Client zurück.
So erstellen Sie eine Methode und Integration
-
Wählen Sie Ihre API.
-
Wählen Sie Methode erstellen aus.
-
Für Methodentyp wählen Sie
GET
aus. -
Wählen Sie für den Integration type (Integrationstyp) die Option Lambda function (Lambda-Funktion) aus.
-
Schalten Sie die Lambda-Proxy-Integration ein. Bei einer Lambda-Proxyintegration sendet API Gateway ein Ereignis mit einer definierten Struktur an Lambda und wandelt die Antwort von Ihrer Lambda-Funktion in eine Antwort um. HTTP
-
Wählen Sie für die Lambda-Funktion die Funktion aus, die Sie mit der AWS CloudFormation Vorlage in Schritt 1 erstellt haben. Der Name der Funktion beginnt mit
private-api-tutorial
. -
Wählen Sie Methode erstellen aus.
Schritt 4: Anhängen einer Ressourcenrichtlinie
Sie fügen Ihrer eine Ressourcenrichtlinie hinzuAPI, die es Clients ermöglicht, Ihre API nur über Ihren VPC Endpunkt aufzurufen. Um den Zugriff auf Ihren weiter einzuschränkenAPI, können Sie auch eine VPCEndpunktrichtlinie für Ihren VPC Endpunkt konfigurieren. Dies ist für dieses Tutorial jedoch nicht erforderlich.
So hängen Sie eine Ressourcenrichtlinie an
Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway
an. -
Wählen Sie Ihre API.
-
Wählen Sie Ressourcenrichtlinie aus und klicken Sie dann auf Richtlinie erstellen.
-
Geben Sie die folgende Richtlinie ein: Ersetzen
vpceID
mit Ihrer VPC Endpunkt-ID aus den Ausgaben Ihres AWS CloudFormation Stacks.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "
vpceID
" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*" } ] } -
Wählen Sie Änderungen speichern aus.
Schritt 5: Stellen Sie Ihre bereit API
Als Nächstes stellen Sie Ihre bereitAPI, um sie Kunden in Ihrem Amazon zur Verfügung zu stellenVPC.
Um ein zu implementieren API
Melden Sie sich unter https://console.aws.amazon.com/apigateway
bei der API Gateway-Konsole an. -
Wählen Sie Ihre API.
Wählen Sie BereitstellenAPI.
Wählen Sie für Stufe die Option Neue Stufe aus.
Geben Sie für Stage name (Stufenname)
test
ein.(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
Wählen Sie Bereitstellen.
Jetzt sind Sie bereit, Ihre zu testenAPI.
Schritt 6: Stellen Sie sicher, dass Ihr API nicht öffentlich zugänglich ist
Verwenden Sie diese Option, curl
um sicherzustellen, dass Sie Ihr Konto nicht API von außerhalb Ihres VPC Amazon-Kontos aufrufen können.
Um deine zu testen API
Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway
an. -
Wählen Sie Ihre API.
-
Wählen Sie im Hauptnavigationsbereich Stufen aus und klicken Sie dann auf die Stufe Test.
-
Wählen Sie unter Stage-Details das Kopiersymbol aus, um Ihren API Aufruf zu kopieren. URL Das URL sieht aus wie
https://
. Für den VPC Endpunkt, den Sie in Schritt 1 erstellt haben, ist privat DNS aktiviert, sodass Sie den bereitgestellten verwenden könnenURL, um Ihren API aufzurufen.abcdef123
.execute-api.us-west-2
.amazonaws.com/test -
Verwenden Sie curl, um zu versuchen, Ihren API von außerhalb Ihres aufzurufen. VPC
curl https://
abcdef123
.execute-api.us-west-2
.amazonaws.com/testCurl zeigt an, dass Ihr API Endpunkt nicht aufgelöst werden kann. Wenn Sie eine andere Antwort erhalten, kehren Sie zu Schritt 2 zurück und stellen Sie sicher, dass Sie als Endpunkttyp Privat auswählen. API
curl: (6) Could not resolve host:
abcdef123
.execute-api.us-west-2
.amazonaws.com/test
Als Nächstes stellen Sie eine Verbindung zu einer EC2 Amazon-Instance in Ihrem herVPC, um Ihre aufzurufen. API
Schritt 7: Connect zu einer Instanz in Ihrem her VPC und rufen Sie Ihre auf API
Als Nächstes testen Sie Ihre API von Ihrem Amazon ausVPC. Um auf Ihre private Instanz zuzugreifenAPI, stellen Sie eine Verbindung zu einer EC2 Amazon-Instance in Ihrem her VPC und rufen dann mit curl Ihre auf. API Sie verwenden Systems-Manager Session-Manager, um eine Verbindung mit Ihrer Instance im Browser herzustellen.
Um deine zu testen API
Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie Instances.
-
Wählen Sie den Namen der Instance aus private-api-tutorial, den Sie mit der AWS CloudFormation Vorlage in Schritt 1 erstellt haben.
-
Wählen Sie Verbinden und wählen Sie dann Session-Manager.
-
Wählen Sie Verbinden , um eine browserbasierte Sitzung für Ihre Instance zu starten.
-
Verwenden Sie in Ihrer Session Manager-Sitzung curl, um Ihre aufzurufen. API Sie können Ihre aufrufenAPI, weil Sie eine Instance in Ihrem Amazon VPC verwenden.
curl https://
abcdef123
.execute-api.us-west-2
.amazonaws.com/testStellen Sie sicher, dass Sie die Antwort erhalte
Hello from Lambda!
.
Sie haben erfolgreich eine erstellt, auf API die nur von Ihrem Amazon aus zugegriffen werden kann, VPC und dann überprüft, ob sie funktioniert.
Schritt 8: Bereinigen
Um unnötige Kosten zu vermeiden, löschen Sie die Ressourcen, die Sie im Rahmen dieses Tutorials erstellt haben. Die folgenden Schritte löschen Ihren REST API und Ihren AWS CloudFormation Stack.
Um ein zu löschen REST API
Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway
an. -
Wählen Sie auf der APIsSeite eine ausAPI. Wählen Sie APIAktionen aus, wählen Sie Löschen API und bestätigen Sie dann Ihre Auswahl.
Um einen AWS CloudFormation Stapel zu löschen
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie Ihren AWS CloudFormation Stack aus.
-
Wählen Sie Löschen und bestätigen Sie dann Ihre Auswahl.
Nächste Schritte: Automatisieren Sie mit AWS CloudFormation
Sie können die Erstellung und Bereinigung aller an diesem Tutorial beteiligten AWS Ressourcen automatisieren. Eine vollständige AWS CloudFormation -Beispielvorlage finden Sie unter template.yaml.