Wie gebe ich einer Lambda-Funktion, die mit einer Amazon VPC verbunden ist, Internetzugriff?

Letzte Aktualisierung: 06.10.2021

Ich möchte meiner AWS-Lambda-Funktion, die mit einer Amazon Virtual Private Cloud (Amazon VPC) verbunden ist, Internetzugriff gewähren. Wie richte ich das ein?

Kurzbeschreibung

Der Internetzugang von einem privaten Subnetz erfordert eine Netzwerkadressen-Übersetzung (NAT, Network Address Translation). Um Internetzugriff auf eine mit Amazon VPC verbundene Lambda-Funktion zu gewähren, leiten Sie den ausgehenden Datenverkehr an ein NAT-Gateway oder eine NAT-Instance in einem öffentlichen Subnetz weiter.

Weitere Informationen finden Sie unter Internet-Gateways im Amazon-VPC-Benutzerhandbuch. Eine Beispiel-Einrichtung finden Sie unter VPC mit öffentlichen und privaten Subnetzen (NAT).

Zur Behebung von Problemen mit dem Internetzugriff mit Amazon-VPC-verbundenen Lambda-Funktionen

Wie behebe ich mit AWS Systems Manager Probleme beim Internetzugriff für eine AWS-Lambda-Funktion in einer Amazon VPC?

Hinweis: Sie können auch Amazon-VPC-Endpunkte verwenden, um von einer Amazon VPC aus ohne Internetzugang eine Verbindung zu unterstützten AWS-Services herzustellen.

Auflösung

(Optional) Erstellen einer neuen Amazon VPC mithilfe des VPC-Assistenten in der AWS-Managementkonsole

Hinweis: Wenn Sie den VPC-Assistenten verwenden, um eine neue Amazon VPC zu erstellen, können Sie mit dem folgenden Abschnitt fortfahren: Erstellen einer Lambda-Ausführungsrolle für Ihre VPC.

1.    Öffnen Sie den VPC-Assistenten in der AWS-Managementkonsole.

2.    Wählen Sie VPC mit öffentlichen und privaten Subnetzen aus. Das neue öffentliche Subnetz und das private Subnetz, einschließlich des zugehörigen Internet-Gateways und des NAT-Gateways, werden in der Amazon-VPC-Konsole angezeigt.

Erstellen Sie ein öffentliches Subnetz und ein oder mehrere private Subnetze in Ihrer Amazon VPC

Anweisungen finden Sie unter Erstellen eines Subnetzes in Ihrer VPC, um jedes Ihrer Subnetze zu erstellen.

Wenn Sie die Subnetze erstellen, geben Sie für Namens-Tag einen Namen für jedes Subnetz ein, das es als öffentlich oder privat identifiziert. Zum Beispiel: Öffentliches Subnetz, Privates Lambda 1 und Privates Lambda 2.

Hinweis: Es ist eine bewährte Methode, mehr als ein privates Subnetz über verschiedene Availability Zones hinweg zu erstellen. Diese Vorgehensweise schafft Redundanz und ermöglicht es dem Lambda-Service, die Hochverfügbarkeit für Ihre Funktion aufrecht zu erhalten.

Erstellen Sie ein Internet-Gateway und fügen Sie es an Ihre Amazon VPC an.

Anweisungen finden Sie unter Erstellen und Anfügen eines Internet-Gateways.

Erstellen Sie ein NAT-Gateway.

Anweisungen finden Sie unter Erstellen eines NAT-Gateways. Wenn Sie das NAT-Gateway für Subnetz erstellen, wählen Sie das Subnetz aus, das Sie öffentlich machen möchten. (Aus dem vorherigen Beispiel: Öffentliches Subnetz.)

Hinweis: Informationen zum Testen Ihrer NAT-Gateway-Einrichtung finden Sie unter Testen des öffentlichen NAT-Gateways im Amazon-VPC-Benutzerhandbuch.

Erstellen Sie zwei benutzerdefinierte Routing-Tabellen – eine für Ihr öffentliches Subnetz und eine für Ihr privates Subnetz

Hinweis: Eine mit Amazon VPC verbundene Lambda-Funktion wählt zufällig ein zugehöriges Subnetz aus, wenn sie Anfragen stellt. Alle Subnetze, die Ihre Funktion verwendet, sollten dieselbe Konfiguration haben, um zufällige Fehler zu vermeiden, die durch Lambda mit einem falsch konfigurierten Subnetz verursacht werden.

Anweisungen finden Sie unter Erstellen einer benutzerdefinierten Routing-Tabelle. Wenn Sie die Routing-Tabellen erstellen, geben Sie für Namens-Tag einen Namen für jede Routing-Tabelle ein, mit dem Sie identifizieren können, welchem Subnetz sie zugeordnet ist. Zum Beispiel: Öffentliches Subnetz und Private Lambda.

Stellen Sie für jede Routing-Tabelle sicher, dass Sie Folgendes tun:

Für die Routing-Tabelle des öffentlichen Subnetzes

1.    Ordnen Sie die Routing-Tabelle des öffentlichen Subnetzes (Öffentliches Subnetz ) dem Subnetz, das Sie veröffentlichen möchten, zu.

2.    Fügen Sie der Routing-Tabelle eine neue Route hinzu, die die folgenden Konfigurationen enthält:
Für Destination (Zielort) geben Sie 0.0.0.0/0 ein.
Wählen Sie für Ziel Internet-Gateway und dann die ID (igw-123example) des von Ihnen erstellten Internet-Gateways aus.
Wählen Sie Save routes (Routen speichern).

Für die Routing-Tabelle des privaten Subnetzes

1.    Verknüpfen Sie die andere Routing-Tabelle (Private Lambda) mit den privaten Subnetzen.

2.    Fügen Sie der Routing-Tabelle eine neue Route hinzu, die die folgenden Konfigurationen enthält:
Für Destination (Zielort) geben Sie 0.0.0.0/0 ein.
Wählen Sie für Target (Ziel) NAT Gateway. Wählen Sie dann die ID des NAT-Gateways (nat-123example), das Sie erstellt haben.
Wichtig: Wenn Sie eine NAT-Instance verwenden, wählen Sie stattdessen Network Interface (Netzwerkschnittstelle).
Wählen Sie Save routes (Routen speichern).

Hinweis: Stellen Sie sicher, dass die Routen zu Ihrem NAT-Gateway den Status Aktiv haben. Wenn das NAT-Gateway gelöscht wird und Sie die Routen nicht aktualisiert haben, befinden sie sich im Status Blackhole. Weitere Informationen finden Sie unter Aktualisieren Ihrer Routing-Tabelle.

Stellen Sie sicher, dass Ihre Netzwerk-ACL ausgehende Anfragen von Ihrer Lambda-Funktion und eingehenden Datenverkehr nach Bedarf zulässt

Die Standard-Netzwerk-Zugriffskontrollliste (ACL) in Ihrer Amazon VPC lässt den gesamten ein- und ausgehenden Datenverkehr zu. Wenn Sie die Netzwerk-ACL-Regeln ändern, stellen Sie sicher, dass Sie immer noch ausgehende Anfragen von Ihrer Lambda-Funktion zulassen.

Stellen Sie außerdem sicher, dass Ihre Netzwerk-ACL den folgenden eingehenden Datenverkehr basierend auf Ihrer VPC-Konfiguration zulässt:

Für private Subnetze, die ein NAT-Gateway verwenden

Erlauben Sie eingehenden Verkehr auf flüchtige Ports 1024-65535.

Für private Subnetze, die eine NAT-Instance verwenden

Erlauben Sie eingehenden Datenverkehr auf den flüchtigen Ports, die von Ihrem NAT-Instance-Betriebssystem verwendet werden.

Hinweis: Weitere Informationen finden Sie unter Datenschutz des Internetzwerk-Datenverkehrs in Amazon VPC.

Erstellen einer Lambda-Ausführungsrolle für Ihre VPC

1.    Öffnen Sie die Seite mit Rollen in der AWS Identity and Access Management (IAM)-Konsole.

2.    Wählen Sie Create role (Rolle erstellen) aus. Die Seite zum Rollen erstellen wird geöffnet.

3.    Auf der Seite zum Rollen erstellen gehen Sie wie folgt vor:
Wählen Sie bei Select type of trusted entity (Typ der vertrauenswürdigen Entität auswählen) AWS-Service aus.
Für allgemeine Anwendungsfälle wählen Sie Lambda aus.
Wählen Sie Next: Permissions (Weiter: Berechtigungen) aus.
Suchen Sie unter Attach permission policies (Berechtigungsrichtlinien anhängen) nach AWSLambdaVPCAccessExecutionRole. Wählen Sie die Richtlinie mit diesem Namen aus. Wählen Sie Next: Tags (Weiter: Tags) aus.
(Optional) Fügen Sie Tags für Ihren Anwendungsfall hinzu.
Wählen Sie Next: Review (Weiter: Überprüfung) aus.
Geben Sie für Role name (Rollennamen) einen Namen für diese Lambda-Ausführungsrolle ein. Zum Beispiel lambda_vpc_basic_execution.
(Optional) Geben Sie für Role description (Rollenbeschreibung) eine Beschreibung der Rolle ein.
Wählen Sie Create role (Rolle erstellen) aus.

Weitere Informationen finden Sie unter AWS-Lambda-Ausführungsrolle und Erstellen einer Ausführungsrolle in der IAM-Konsole.

Konfigurieren Sie Ihre Lambda-Funktion für die Verbindung mit Ihrer Amazon VPC

1.    Öffnen Sie die Funktionen-Seite in der Lambda-Konsole.

2.    Wählen Sie den Namen der Funktion aus, die Sie mit Ihrer Amazon VPC verbinden möchten.

3.    Wählen Sie Configuration (Konfiguration) aus.

4.    Wählen Sie für Execution role (Ausführungsrolle) für Existing role (Verfügbare Rolle) die Lambda-Ausführungsrolle aus, die Sie zuvor erstellt haben.

5.    Wählen Sie unter VPC Edit (Bearbeiten) aus. Führen Sie danach folgende Aktionen aus:
Wählen Sie für Virtual Private Cloud (VPC) Ihre VPC aus.
Wählen Sie für Subnetze die von Ihnen erstellten privaten Subnetze aus. Identifizieren Sie sie anhand ihrer Subnetz-IDs (und Namen, wenn Sie sie benannt haben).
Wählen Sie für Sicherheitsgruppen eine Sicherheitsgruppe aus.
Hinweis: Die Standardsicherheitsgruppe lässt den gesamten ausgehenden Internetverkehr zu und ist für die meisten Anwendungsfälle ausreichend. Weitere Informationen finden Sie unter Sicherheitsgruppen für Ihre VPC.
Wählen Sie Speichern aus.