Wie kann ich eine private API Gateway API mithilfe einer Anwendung oder eines Network Load Balancers aufrufen?

Lesedauer: 5 Minute
0

Ich möchte meine private Amazon API Gateway API als Ziel hinter einem Load Balancer einrichten. Dann möchte ich ein AWS-Konto verwenden, um von einer Anwendung oder einem Network Load Balancer aus auf meine private API zuzugreifen.

Kurzbeschreibung

Informationen zum Zugriff auf Ihre private API mit AWS Direct Connect oder Amazon Route 53 finden Sie unter So rufen Sie eine private API auf. Sie können auch über einen VPC-Schnittstellen-Endpunkt auf eine private REST-API von API Gateway in einem anderen AWS-Konto zugreifen.

Die folgende Lösung verwendet die IP-Adresse einer elastischen Netzwerkschnittstelle für einen Amazon Virtual Private Cloud (Amazon VPC)-Endpunkt. Mit dieser IP-Adresse können Sie Ihre private API als Ziel zum Load Balancer hinzufügen.

**Wichtig:**API Gateway unterstützt keine benutzerdefinierten Domainnamen für private APIs. Um dieses Problem zu umgehen, können Sie die Domain aufrufen und an einen Load Balancer anhängen. Verwenden Sie dann das folgende Setup, um die private API aufzurufen.

Lösung

Erstellen Sie einen Amazon-VPC-Endpunkt

1.Öffnen Sie die Amazon-VPC-Konsole.

  1. Wählen Sie Endpunkte und dann Endpunkt erstellen aus.
    **Hinweis:**Wenn Sie bereits Amazon-VPC-Endpunkte in Ihrer VPC mit der API execute-api eingerichtet haben, schalten Sie das private DNS aus.

  2. Wählen Sie für Services com.amazonaws.com.your-region.execute-api aus.

  3. Wählen Sie für VPC Ihre Amazon VPC aus.

  4. Wählen Sie für Subnetze zwei Subnetze in verschiedenen Availability Zones (AZ-IDs) aus und wählen Sie dann Endpunkt erstellen aus.

  5. Wählen Sie Ihren Endpunkt aus, wählen Sie Subnetze aus und kopieren Sie dann die IP-Adresse.

Weitere Informationen finden Sie unter Erstellen eines Schnittstellen-VPC-Endpunkts für API Gateway execute-api.

Erstellen Sie eine private REST-API und gewähren Sie dem Amazon-VPC-Endpunkt die Berechtigung

  1. Öffnen Sie die API-Gateway-Konsole und wählen Sie API erstellen aus.

  2. Wählen Sie für REST-API Erstellen aus.

  3. Geben Sie in Einstellungen die folgenden Informationen ein: 
    Geben Sie als API-Name einen Namen für die API ein.
    Wählen Sie für Endpunkttyp die Option Privat aus.
    Geben Sie für Endpunkt-IDs die von Ihnen erstellte Endpunkt-ID ein.

4.    Wählen Sie API erstellen aus.

5.Wählen Sie im Navigationsbereich Ressourcenrichtlinie aus.

  1. Fügen Sie im Ressourcenrichtlinien-Editor die folgende Richtlinie ein:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:SourceVpce": "vpce-081234d1ad408e"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*"
    }
  ]
}

**Hinweis:**Ersetzen Sie vpce-081234d1ad408e durch Ihre VPC-Endpunkt-ID. Ersetzen Sie arn:aws:execute-api:US-east-1:Account_ID:API_ID durch denARN Ihrer API.

7.Wählen Sie Speichern aus.

Weitere Informationen finden Sie unter Erstellen einer privaten API mithilfe der API-Gateway-Konsole.

Ein öffentliches Zertifikat von AWS Certificate Manager erstellen oder importieren

Fordern Sie entweder ein öffentliches Zertifikat an oder importieren Sie ein Zertifikat.

Erstellen Sie einen Application Load Balancer oder einen Network Load Balancer

Erstellen Sie entweder einen Application Load Balancer oder einen Network Load Balancer.

Erstellen Sie die Zielgruppe

1.Öffnen Sie dieAmazon Elastic Compute Cloud (Amazon EC2)-Konsole.

  1. Wählen Sie im Navigationsbereich in Lastausgleich die Option Load Balancers und dann Zielgruppen aus.

3.Wählen Sie Zielgruppe erstellen.

  1. Wählen Sie als Zieltyp IP-Adressen aus.

  2. Geben Sie für Zielgruppenname einen Namen ein.

Application Load Balancer

Wählen Sie für Protokoll die Option HTTPS aus.
Wählen Sie als Port 443 aus.
Wählen Sie für VPC Ihre VPC aus.
Geben Sie als Zustandsprüfungspfad 200,403 ein, sodass der VPC-Endpunkt in der Zielgruppe als Fehlerfrei angezeigt wird.

Netzwerk-Load-Balancer

Wählen Sie für Protokoll die Option TLS aus.
Wählen Sie als Port 443 aus.
Wählen Sie für VPC Ihre VPC aus.

6.    Wählen Sie Weiter.

  1. Geben Sie unter IPs angeben die IP-Adresse ein, die Sie im Abschnitt Erstellen eines Schnittstellen-Amazon VPC-Endpunkts kopiert haben, und wählen Sie dann IPv4-Adresse hinzufügen aus.

8.Wählen Sie Zielgruppe erstellen.

Konfigurieren Sie den Load Balancer

1.Öffnen Sie die EC2-Konsole.

2.Wählen Sie im Navigationsbereich Load Balancers und anschließend Load Balancer erstellen aus.

Application Load Balancer

Wählen Sie für Schema je nach Konfiguration entweder mit dem Internet verbunden oder Intern aus.
Wählen Sie für Protokoll die Option HTTPS aus.
Wählen Sie für VPC und Subnetze Ihre VPC und Subnetze aus.

Netzwerk-Load-Balancer

Wählen Sie für Schema je nach Konfiguration entweder mit dem Internet verbunden oder Intern aus.
Wählen Sie für Protokoll die Option TLS aus.
Wählen Sie für VPC und Subnetze Ihre VPC und Subnetze aus.
Wählen Sie für Sicherheitsrichtlinie die Standardrichtlinie ELBSecurityPolicy-TLS (empfohlen) aus.
Wählen Sie für das Standard-SSL/TLS-Zertifikat die Option Von ACM aus.
Wählen Sie das Dropdownmenü Zertifikat auswählen und wählen Sie dann Ihr Zertifikat aus.

3.Wählen Sie Load Balancer erstellen aus.

**Hinweis:**Die Load-Balancer-Ziele befinden sich in den IP-Adressen der elastischen Netzwerkschnittstelle, die der VPC-Endpunkt erstellt hat. Um diese elastischen Netzwerkschnittstellen zu finden, wählen Sie Ihren VPC-Endpunkt aus und öffnen Sie dann die Registerkarte Subnetze.

Erstellen Sie einen Datensatz in einer öffentlichen oder privaten gehosteten Amazon Route 53 Zone

Erstellen Sie entweder eine öffentliche gehostete Zone oder eine private gehostete Zone.

Dann erstellen Sie einen CNAME-Eintrag und verknüpfen ihn mit Ihrem Application oder Network Load Balancer.

Testen

Für öffentliche Load Balancer können Sie eine Curl-Anfrage von Ihrem lokalen Computer aus stellen.

Starten Sie für private Load Balancer in einem Ihrer Subnetze für Ihren Load Balancer eine neue EC2 Instance. Stellen Sie dann eine Curl-Anfrage, die der folgenden Anfrage ähnelt:

curl -v https://{custom-domain-name}/<stage-name>/<resource-path> -H 'Host: <api-id>.execute-api.<region>.amazonaws.com'

-oder-

curl -v https://{custom-domain-name}/<stage-name>/<resource-path> -H 'x-apigw-api-id:{api-id}'

Eine erfolgreiche Anfrage führt zu einen Antwortcode von 200 OK. Eine erfolglose Anfrage führt zu einem Antwortcode 403 Forbidden oder einem DNS-Auflösungsfehler. Wenn Sie auf Probleme stoßen, finden Sie weitere Informationen unter Problembehandlung bei Ihren Load Balancern.

Ähnliche Informationen

Wie stelle ich über eine Direct-Connect-Verbindung eine Verbindung zu einem privaten API-Gateway her?

Wie behebe ich Probleme bei der Verbindung zu einem privaten API-Endpunkt von API Gateway?

Überwachung von REST-APIs mit Amazon-CloudWatch-Metriken

CloudWatch-Protokollierung für eine REST-API in API Gateway einrichten

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr