Tutorial: Erstellen Sie ein privates REST API - APIAmazon-Gateway

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.

Überblick über das Private, das API Sie in diesem Tutorial erstellen.

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.

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
  1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie Stack erstellen und dann Mit neuen Ressourcen (Standard) aus.

  3. Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen aus.

  4. Wählen Sie die Vorlage aus, die Sie heruntergeladen haben.

  5. Wählen Sie Weiter aus.

  6. Geben Sie für Stack-Name die Zeichenfolge private-api-tutorial ein und klicken Sie auf Weiter.

  7. Wählen Sie in Stack-Optionen konfigurieren die Option Weiter aus.

  8. Bestätigen Sie bei Funktionen, dass IAM Ressourcen in Ihrem Konto erstellt werden AWS CloudFormation können.

  9. 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
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie Erstellen API und dann für RESTAPIBuild aus.

  3. Geben Sie als APINamen einprivate-api-tutorial.

  4. Wählen Sie als APIEndpunkttyp die Option Privat aus.

  5. Geben Sie als VPCEndpunkt IDs die VPC Endpunkt-ID aus den Ausgaben Ihres AWS CloudFormation Stacks ein.

  6. 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
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie Ihre API.

  3. Wählen Sie Methode erstellen aus.

  4. Für Methodentyp wählen Sie GET aus.

  5. Wählen Sie für den Integration type (Integrationstyp) die Option Lambda function (Lambda-Funktion) aus.

  6. 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

  7. 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.

  8. 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
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie Ihre API.

  3. Wählen Sie Ressourcenrichtlinie aus und klicken Sie dann auf Richtlinie erstellen.

  4. 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:/*" } ] }
  5. 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
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie Ihre API.

  3. Wählen Sie BereitstellenAPI.

  4. Wählen Sie für Stufe die Option Neue Stufe aus.

  5. Geben Sie für Stage name (Stufenname) test ein.

  6. (Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.

  7. 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
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie Ihre API.

  3. Wählen Sie im Hauptnavigationsbereich Stufen aus und klicken Sie dann auf die Stufe Test.

  4. Wählen Sie unter Stage-Details das Kopiersymbol aus, um Ihren API Aufruf zu kopieren. URL Das URL sieht aus wiehttps://abcdef123.execute-api.us-west-2.amazonaws.com/test. 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.

  5. Verwenden Sie curl, um zu versuchen, Ihren API von außerhalb Ihres aufzurufen. VPC

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Curl 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
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Instances.

  3. Wählen Sie den Namen der Instance aus private-api-tutorial, den Sie mit der AWS CloudFormation Vorlage in Schritt 1 erstellt haben.

  4. Wählen Sie Verbinden und wählen Sie dann Session-Manager.

  5. Wählen Sie Verbinden , um eine browserbasierte Sitzung für Ihre Instance zu starten.

  6. 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/test

    Stellen Sie sicher, dass Sie die Antwort erhalte Hello from Lambda!.

Sie verwenden Session Manager, um Ihren API von Ihrem Amazon VPC aus aufzurufen.

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
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. 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
  1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie Ihren AWS CloudFormation Stack aus.

  3. 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.