

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 einer privaten REST-API
<a name="private-api-tutorial"></a>

In diesem Tutorial erstellen Sie eine private REST-API. Clients können nur von Ihrer Amazon VPC aus auf die API zugreifen. Die 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 CloudFormation Vorlage, um eine Amazon VPC, einen VPC-Endpunkt und eine AWS Lambda Funktion zu erstellen und eine Amazon EC2 EC2-Instance zu starten, mit der Sie Ihre API testen werden. Als Nächstes verwenden Sie die, AWS-Managementkonsole um eine private API zu erstellen und eine Ressourcenrichtlinie anzuhängen, die den Zugriff nur von Ihrem VPC-Endpunkt aus erlaubt. Zuletzt testen Sie Ihre API. 

![\[Übersicht der privaten API, die Sie in diesem Tutorial erstellen.\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/private-api-tutorial-diagram.png)


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 [Einrichten der API Gateway](setting-up.md).

In diesem Tutorial wird AWS-Managementkonsole verwendet. Eine CloudFormation Vorlage, die diese API und alle zugehörigen Ressourcen erstellt, finden Sie unter [template.yaml](samples/private-api-full-template.zip).

**Topics**
+ [Schritt 1: Erstellen von Abhängigkeiten](#private-api-tutorial-create-dependencies)
+ [Schritt 2: Erstellen einer privaten API](#private-api-tutorial-create-api)
+ [Schritt 3: Erstellen Sie eine Methode und Integration](#private-api-tutorial-create-method)
+ [Schritt 4: Anhängen einer Ressourcenrichtlinie](#private-api-tutorial-attach-resource-policy)
+ [Schritt 5: Bereitstellen Ihrer API](#private-api-tutorial-deploy-api)
+ [Schritt 6: Stellen Sie sicher, dass Ihre API nicht öffentlich zugänglich ist](#private-api-tutorial-test-private-api)
+ [Schritt 7: Verbinden Sie sich mit einer Instance in Ihrer VPC und rufen Sie Ihre API auf](#private-api-tutorial-connect-to-instance)
+ [Schritt 8: Bereinigen](#private-api-tutorial-cleanup)
+ [Nächste Schritte: Automatisieren Sie mit CloudFormation](#private-api-tutorial-next-steps)

## Schritt 1: Erstellen von Abhängigkeiten
<a name="private-api-tutorial-create-dependencies"></a>

[Laden Sie diese Vorlage herunter und entpacken Sie sie. CloudFormation](samples/private-api-starter-template.zip) Sie verwenden die Vorlage, um alle Abhängigkeiten für Ihre private API zu erstellen, einschließlich einer Amazon VPC, eines VPC-Endpunkts und einer Lambda-Funktion, die als Backend Ihrer API dient. Sie erstellen die private API später.

**Um einen Stapel zu erstellen CloudFormation**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

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

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

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

1. Wählen Sie **Weiter** aus. 

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

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

1. Bestätigen Sie bei **Capabilities**, dass IAM-Ressourcen in Ihrem Konto erstellt werden CloudFormation können.

1. Wählen Sie **Weiter** und anschließend **Absenden** aus.

CloudFormation stellt die Abhängigkeiten für Ihre API bereit, was einige Minuten dauern kann. **Wenn der Status Ihres CloudFormation Stacks **CREATE\$1COMPLETE** lautet, 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 einer privaten API
<a name="private-api-tutorial-create-api"></a>

Sie erstellen eine private API, um nur Clients in Ihrer VPC den Zugriff darauf zu ermöglichen.

**Erstellen einer privaten API**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie **API erstellen** und dann für **Rest-API** die Option **Erstellen** aus.

1. Geben Sie unter **API name (API-Name)** **private-api-tutorial** ein.

1. Wählen Sie für **API endpoint type** (API-Endpunkttyp) die Option **Private** (Privat) aus.

1. Geben Sie für **VPC-Endpunkt IDs** die VPC-Endpunkt-ID aus den **Ausgaben** Ihres CloudFormation Stacks ein.

1. Wählen Sie bei **IP address type** (IP-Adresstyp) **Dualstack**.

1. Wählen Sie **Create API** (API erstellen) aus.

## Schritt 3: Erstellen Sie eine Methode und Integration
<a name="private-api-tutorial-create-method"></a>

Sie erstellen eine `GET` Methode und eine Lambda-Integration, um `GET`-Anfragen an Ihre API zu bearbeiten. Wenn ein Client Ihre API aufruft, 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 bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie Ihre API aus.

1. Wählen Sie **Methode erstellen** aus.

1. Für **Methodentyp** wählen Sie `GET` aus.

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

1. Schalten Sie die **Lambda-Proxy-Integration** ein. Mit einer Lambda-Proxy-Integration sendet API Gateway ein Ereignis mit einer definierten Struktur an Lambda und transformiert die Antwort von Ihrer Lambda-Funktion in eine HTTP-Antwort.

1. Wählen Sie für die **Lambda-Funktion** die Funktion aus, die Sie mit der CloudFormation Vorlage in Schritt 1 erstellt haben. Der Name der Funktion beginnt mit **private-api-tutorial**.

1. Wählen Sie **Methode erstellen** aus.

## Schritt 4: Anhängen einer Ressourcenrichtlinie
<a name="private-api-tutorial-attach-resource-policy"></a>

Sie hängen Ihrer API eine [Ressourcenrichtlinie](apigateway-resource-policies.md) an, die es Clients ermöglicht, Ihre API nur über Ihren VPC-Endpunkt aufzurufen. Um den Zugriff auf Ihre API weiter einzuschränken, können Sie auch eine [VPC-Endpunktrichtlinie](apigateway-vpc-endpoint-policies.md) für Ihren VPC-Endpunkt konfigurieren, aber das ist für dieses Tutorial nicht erforderlich.

**So hängen Sie eine Ressourcenrichtlinie an**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie Ihre API aus.

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

1. Geben Sie die folgende Richtlinie ein: *vpceID*Ersetzen Sie es durch Ihre VPC-Endpunkt-ID aus den **Ausgaben** Ihres CloudFormation Stacks.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Principal": "*",
               "Action": "execute-api:Invoke",
               "Resource": "execute-api:/*",
               "Condition": {
                   "StringNotEquals": {
                       "aws:sourceVpce": "vpce-abcd1234"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Principal": "*",
               "Action": "execute-api:Invoke",
               "Resource": "execute-api:/*"
           }
       ]
   }
   ```

------

1. Wählen Sie **Änderungen speichern ** aus.

## Schritt 5: Bereitstellen Ihrer API
<a name="private-api-tutorial-deploy-api"></a>

Als Nächstes stellen Sie Ihre API bereit, um sie Clients in Ihrer Amazon VPC zur Verfügung zu stellen.

**So stellen Sie eine API bereit**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie Ihre API aus.

1. Klicken Sie auf **Deploy API**.

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

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

1. (Optional) Geben Sie unter **Description (Beschreibung)** eine Beschreibung ein.

1. Wählen Sie **Deploy (Bereitstellen)** aus.

Jetzt sind Sie bereit, Ihre API zu testen.

## Schritt 6: Stellen Sie sicher, dass Ihre API nicht öffentlich zugänglich ist
<a name="private-api-tutorial-test-private-api"></a>

Verwenden Sie, `curl` um zu überprüfen, ob Sie Ihre API nicht außerhalb Ihrer Amazon VPC aufrufen können.

**So testen Sie Ihre API**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie Ihre API aus.

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

1. Wählen Sie unter **Stufendetails** das Kopiersymbol aus, um die Aufruf-URL Ihrer API zu kopieren. Die URL sieht folgendermaßen aus `https://abcdef123.execute-api.us-west-2.amazonaws.com/test`. Für den VPC-Endpunkt, den Sie in Schritt 1 erstellt haben, ist privates DNS aktiviert, sodass Sie die bereitgestellte URL zum Aufrufen Ihrer API verwenden können.

1. Verwenden Sie curl, um zu versuchen, Ihre API von außerhalb Ihrer VPC aufzurufen.

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

   Curl zeigt an, dass der Endpunkt Ihrer API nicht aufgelöst werden kann. Wenn Sie eine andere Antwort erhalten, gehen Sie zurück zu Schritt 2 und stellen Sie sicher, dass Sie **Privat** für den Endpunkttyp Ihrer API auswählen.

   ```
   curl: (6) Could not resolve host: abcdef123.execute-api.us-west-2.amazonaws.com/test
   ```

Als Nächstes stellen Sie eine Verbindung zu einer Amazon-EC2-Instance in Ihrer VPC her, um Ihre API aufzurufen.

## Schritt 7: Verbinden Sie sich mit einer Instance in Ihrer VPC und rufen Sie Ihre API auf
<a name="private-api-tutorial-connect-to-instance"></a>

Als Nächstes testen Sie Ihre API aus Ihrer Amazon VPC heraus. Um auf Ihre private API zuzugreifen, stellen Sie eine Verbindung zu einer Amazon-EC2-Instance in Ihrer VPC her und verwenden dann curl, um Ihre API aufzurufen. Sie verwenden Systems-Manager Session-Manager, um eine Verbindung mit Ihrer Instance im Browser herzustellen.

**So testen Sie Ihre API**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie **Instances**.

1. Wählen Sie den Instanznamen aus **private-api-tutorial**, den Sie mit der CloudFormation Vorlage in Schritt 1 erstellt haben.

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

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

1. Verwenden Sie in Ihrer Session-Manager-Sitzung curl, um Ihre API aufzurufen. Sie können Ihre API aufrufen, da Sie eine Instance in Ihrer 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 Ihre API aus Ihrer Amazon VPC heraus aufzurufen.\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/private-api-tutorial-invoke.png)


Sie haben erfolgreich eine API erstellt, auf die nur von Ihrer Amazon VPC aus zugegriffen werden kann und dann überprüft, dass sie funktioniert.

## Schritt 8: Bereinigen
<a name="private-api-tutorial-cleanup"></a>

Um unnötige Kosten zu vermeiden, löschen Sie die Ressourcen, die Sie im Rahmen dieses Tutorials erstellt haben. Mit den folgenden Schritten werden Ihre REST-API und Ihr CloudFormation Stack gelöscht.

**So löschen Sie eine REST-API**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie auf der **APIs**Seite eine API aus. Wählen Sie **API-Aktionen** aus, klicken Sie auf **API löschen** und bestätigen Sie anschließend Ihre Auswahl.

**Um einen CloudFormation Stapel zu löschen**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie Ihren CloudFormation Stack aus.

1. Wählen Sie **Löschen** und bestätigen Sie dann Ihre Auswahl.

## Nächste Schritte: Automatisieren Sie mit CloudFormation
<a name="private-api-tutorial-next-steps"></a>

Sie können die Erstellung und Bereinigung aller an diesem Tutorial beteiligten AWS Ressourcen automatisieren. Eine vollständige CloudFormation -Beispielvorlage finden Sie unter [template.yaml](samples/private-api-full-template.zip).