Direkt zum Inhalt

Wie verwende ich einen Application Load Balancer oder einen Network Load Balancer, um eine private API von API Gateway aufzurufen?

Lesedauer: 5 Minute
0

Ich möchte ein AWS-Konto verwenden, um von einem Application Load Balancer oder einem Network Load Balancer aus auf meine private API zuzugreifen.

Lösung

Informationen zum Zugriff auf die private REST-API mit AWS Direct Connect oder Amazon Route 53 findest du unter Eine private API aufrufen. Du kannst auch einen Amazon Virtual Private Cloud (VPC)-Schnittstellenendpunkt verwenden, um auf eine private REST-API bei API Gateway zuzugreifen, die sich in einem anderen Konto befindet.

Die folgende Lösung verwendet IP-Adressen, die einem Execute-API-Amazon-VPC-Endpunkt zugewiesen sind. Du kannst die private REST-API als Ziel zu einem Load Balancer mit den IP-Adressen des VPC-Endpunkts hinzufügen.

Erstellen eines Amazon-VPC-Endpunkts

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-VPC-Konsole.
  2. Wähle Endpunkte und dann Endpunkt erstellen aus.
  3. Wähle für Services com.amazonaws.your-region.execute-api aus.
  4. Wähle für VPC deine Amazon VPC aus.
  5. Wähle für Subnetze Subnetze in unterschiedlichen Availability Zones aus.
  6. Wähle Endpunkt erstellen aus.
  7. Wähle deinen Endpunkt aus, wähle Subnetze aus und notiere dann die IP-Adressen.

Weitere Informationen findest du unter Private REST-APIs in API Gateway.

Eine private REST-API erstellen und dem VPC-Endpunkt die Berechtigung gewähren, die private API aufzurufen

Führe die folgenden Schritte aus:

  1. Öffne die API-Gateway-Konsole.

  2. Wähle API erstellen aus.

  3. Wähle für REST-API die Option Erstellen aus.

  4. Gib in Einstellungen für API-Name einen Namen für die API ein.

  5. Wähle für Endpunkttyp die Option Privat aus.

  6. (Optional) Gib für Endpunkt-IDs deine Endpunkt-ID ein.

  7. Wähle API erstellen aus.

  8. Wähle im Navigationsbereich Ressourcenrichtlinie aus.

  9. Gib die folgende Richtlinie ein:

    {  "Version": "2012-10-17",  "Statement": [
        {
          "Effect": "Deny",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "arn:aws:execute-api:your-region:ACCOUNT_ID:API_ID/*/*/*",
          "Condition": {
            "StringNotEquals": {
              "aws:SourceVpce": "vpce-081234d1ad408e"
            }
          }
        },
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "arn:aws:execute-api:your-region:ACCOUNT_ID:API_ID/*/*/*"
        }
      ]
    }

    Hinweis: Ersetze vpce-081234d1ad408e durch deine VPC-Endpunkt-ID. Ersetze arn:aws:execute-api:your-region:ACCOUNT_ID:API_ID durch den Amazon-Ressourcennamen (ARN) deiner API-Methode.

  10. Wähle Speichern aus.

Ein öffentliches Zertifikat von AWS Certificate Manager erstellen oder importieren

Fordere entweder ein öffentliches Zertifikat an oder importiere ein Zertifikat.

Zielgruppe erstellen

Führe die folgenden Schritte aus:

  1. Öffne die Amazon Elastic Compute Cloud (Amazon EC2)-Konsole.
  2. Wähle im Navigationsbereich unter Lastausgleich die Option Load Balancers und dann Zielgruppen aus.
  3. Wähle Zielgruppe erstellen aus.
  4. Wähle als Zieltyp IP-Adressen aus.
  5. Gib für Zielgruppenname einen Namen ein.
  6. Wähle für Protokoll die Option HTTPS für einen Application Load Balancer oder die Option TLS für einen Network Load Balancer aus.
  7. Wähle als Port 443 aus.
  8. Wähle für VPC deine VPC aus.
  9. Wähle für Zustandsprüfungsprotokoll die Option HTTPS aus.
  10. Gib für Pfad für die Zustandsprüfung „/“ und für Erfolgscodes 200,403 ein, sodass der VPC-Endpunkt als Fehlerfrei angezeigt wird.
  11. Wähle Weiter aus.
  12. Gib unter Specify IPs (IP-Adressen angeben) die IP-Adressen ein, die du dir notiert hast.
  13. Wähle dann IPv4-Adresse hinzufügen aus.
  14. Füge alle IP-Adressen hinzu und wähle dann Unten aufgeführte als ausstehend einschließen aus.
  15. Wähle Zielgruppe erstellen aus.

Einen Application Load Balancer oder einen Network Load Balancer erstellen

Anweisungen findest du unter Einen Application Load Balancer erstellen oder Einen Network Load Balancer erstellen.

Load Balancer konfigurieren

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-EC2-Konsole.
  2. Wähle im Navigationsbereich Load Balancers und anschließend Load Balancer erstellen aus.
  3. Wähle für Scheme entweder Mit dem Internet verbunden oder Intern aus.
  4. Wähle für Protokoll die Option HTTPS für einen Application Load Balancer oder die Option TLS für einen Network Load Balancer aus.
  5. Wähle für Standardaktionen deine Zielgruppe aus, an die der Datenverkehr weitergeleitet werden soll.
  6. Wähle für VPC und Subnetze deine VPC und Subnetze aus.
  7. Verwende für Sicherheitsrichtlinie die neueste vordefinierte Sicherheitsrichtlinie für einen Application Load Balancer. Behalte für einen Network Load Balancer die Standardsicherheitsrichtlinie bei.
  8. Wähle für das Standard-SSL/TLS-Zertifikat die Option Von ACM aus.
  9. Wähle Zertifikat auswählen und dann dein Zertifikat aus.
  10. Wähle Load Balancer erstellen aus.

Benutzerdefinierten Domainnamen erstellen

Erstelle einen benutzerdefinierten Domainnamen in der API-Gateway-Konsole. Ordne dann die private REST-API dem benutzerdefinierten Domainnamen zu.

Datensatz in einer öffentlichen oder privat gehosteten Route-53-Zone erstellen

Erstelle eine öffentliche gehostete Zone oder eine private gehostete Zone. Erstelle dann einen CNAME- oder Alias-Datensatz, um deinen benutzerdefinierten Domainnamen auf den Application Load Balancer oder Network Load Balancer zu verweisen.

Deinen öffentlichen oder privaten Load Balancer testen

Führe für öffentliche Load Balancer einen curl-Befehl von deinem lokalen Computer aus.

Starte für private Load Balancer eine neue EC2-Instance in der VPC, in der sich der Load Balancer befindet. Verwende anschließend den folgenden curl-Befehl:

curl -v https://{custom-domain-name}/<resource-path>

Eine erfolgreiche Anforderung führt zu einem Antwortcode „200 OK“. Eine erfolglose Anforderung führt zu einem Antwortcode „403 Forbidden“ oder einem DNS-Auflösungsfehler.

Weitere Informationen zur Problembehandlung findest du unter Wie behebe ich HTTP 403-Fehler vom API Gateway aus?, Problembehandlung bei Application Load Balancern und Problembehandlung bei Network Load Balancern.

Ähnliche Informationen

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

Wie behebe ich Probleme, wenn ich eine Verbindung zu einem privaten API-Endpunkt in API Gateway herstelle?

Ausführung der REST-API mit Amazon CloudWatch-Metriken überwachen

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