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

Letzte Aktualisierung: 29.10.2020

Ich möchte meiner AWS-Lambda-Funktion, die mit einer Amazon Virtual Private Cloud (Amazon VPC) verbunden ist, Internetzugriff gewähren. Wie konfiguriere ich meine Amazon VPC dafür?

Kurzbeschreibung

Um auf private Amazon-VPC-Ressourcen zuzugreifen, z. B. eine Relational-Database-Service-DB-Instance (Amazon RDS) oder Amazon-Elastic-Compute-Cloud-Instance (Amazon EC2), verknüpfen Sie Ihre Lambda-Funktion in einer Amazon VPC mit einem oder mehreren privaten Subnetzen.

</p> <p>Um Ihrer Funktion Internetzugriff zu gewähren, muss die zugehörige VPC ein NAT-Gateway (oder eine NAT-Instance) in einem öffentlichen Subnetz haben.

Hinweis: Ob ein Subnetz privat oder öffentlich ist, hängt von seiner Routing-Tabelle. Ein öffentliches Subnetz weist eine Route auf, die auf ein Internet-Gateway verweist und ein privates Subnetz nicht.

Auflösung

Wenn Sie eine vorhandene Amazon VPC verwenden, beginnen Sie mit Erstellen Sie Ihre VPC-Komponenten, um ein öffentliches Subnetz mit einem NAT-Gateway und einem oder mehreren privaten Subnetzen zu erstellen. Wenn Ihre vorhandene VPC bereits über ein öffentliches Subnetz mit einem NAT-Gateway und einem oder mehreren privaten Subnetzen verfügt, fahren Sie mit Erstellen einer Lambda-Ausführungsrolle für Ihre VPC fort

Wenn Sie eine neue VPC für diese Einrichtung erstellen möchten, verwenden Sie den VPC-Assistenten und wählen Sie dann VPC mit öffentlichen und privaten Subnetzen aus. Weitere Informationen finden Sie unterVPC mit öffentlichen und privaten Subnetzen (NAT). (In der Amazon-VPC-Konsole heißen Ihre Subnetze entsprechend „Öffentliches Subnetz“ und „Privates Subnetz“.) Fahren Sie dann mit Erstellen einer Lambda-Ausführungsrolle für Ihre VPC fort.

Erstellen Sie Ihre VPC-Komponenten

  1. Erstellen Sie zwei oder mehr neue Subnetze in Ihrer VPC. Fügen Sie während der Erstellung für Namens-Tag einen Namen hinzu, damit Sie leichter erkennen können, welches Subnetz öffentlich und welche Subnetze privat sind. Nennen Sie beispielsweise eines Öffentliches Subnetz und das andere Privates Lambda (oder Privates Lambda 1, Privates Lambda 2, usw. für mehrere private Subnetze).
    Hinweis: Es ist eine bewährte Methode, mehrere private Subnetze in verschiedenen Availability Zones zu erstellen aus Gründen der Redundanz und damit Lambda eine hohe Verfügbarkeit für Ihre Funktion aufrechterhalten kann.
  2. Erstellen Sie ein Internet-Gateway und hängen Sie es an Ihre VPC an.
  3. Erstellen Sie ein NAT-Gateway. Wählen Sie während der Erstellung für Subnetz das Subnetz aus, das Sie veröffentlichen möchten. (Beispiel: Öffentliches Subnetz, wenn Sie es zuvor benannt haben.)
    Hinweis: Hilfe zum Testen Ihres NAT-Gateways nach der Erstellung finden Sie unter Testen eines NAT-Gateways.

Erstellen und ändern Sie Routing-Tabellen für Ihre Subnetze

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.

  1. Erstellen Sie im Bereich Routing-Tabellen der Amazon-VPC-Konsole zwei benutzerdefinierte Routing-Tabellen für Ihre VPC.
    Tipp: Fügen Sie während der Erstellung für Namens-Tag einen Namen hinzu, damit Sie leichter erkennen können, mit welchem Subnetz die Routing-Tabelle verknüpft ist. Benennen Sie beispielsweise eines Öffentliches Subnetz und das andere Privates Lambda.
  2. Verknüpfen Sie die Routing-Tabelle des öffentlichen Subnetzes (Öffentliches Subnetz ) mit dem Subnetz, das Sie veröffentlichen möchten.
  3. Fügen Sie dieser Routentabelle eine neue Route hinzu. Geben Sie Folgendes an:
    Für Ziel 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 Routen speichern. Das zugehörige Subnetz ist jetzt ein öffentliches Subnetz.
  4. Verknüpfen Sie die andere Routing-Tabelle (Private Lambda) mit den privaten Subnetzen.
  5. Fügen Sie eine neue Route zu dieser Routentabelle hinzu. Geben Sie Folgendes an:
    Für Ziel 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. (Wenn Sie eine NAT-Instance verwenden, wählen Sie stattdessen Netzwerkschnittstelle.)
    Wählen Sie 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.

Konfigurieren von Netzwerk-ACLs

Die Standard-Netzwerk-Zugriffskontrollliste (ACL) in Ihrer Amazon VPC lässt den gesamten ein- und ausgehenden Datenverkehr zu. Wenn Sie die Netzwerk-ACL-Regeln geändert haben (oder Sie planen, sie zu ändern), stellen Sie sicher, dass Sie weiterhin ausgehende Anfragen von Ihrer Lambda-Funktion zulassen. Stellen Sie außerdem sicher, dass Sie eingehenden Datenverkehr nach Bedarf für Ihre VPC-Konfiguration zulassen:

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

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

  1. Wählen Sie im Bereich Rollen der AWS-Identity-and-Access-Management-(IAM)-Konsole Rolle erstellen aus.
  2. Auf der Seite Rolle erstellen gehen Sie wie folgt vor:
    Bestätigen Sie für Typ der vertrauenswürdigen Entität auswählen, dass der AWS-Service ausgewählt ist.
    Wählen Sie für Anwendungsfall auswählen die Option Lambda.
    Wählen Sie Weiter:Berechtigungen.
  3. Suchen Sie unter Berechtigungsrichtlinien anhängen nach AWSLambdaVPCAccessExecutionRole. Wählen Sie die Richtlinie mit diesem Namen aus und wählen Sie dann Weiter: Tags.
  4. Fügen Sie optional Tags hinzu, wenn Sie möchten und wählen Sie dann Weiter: Überprüfen.
  5. Gehen Sie unter Überprüfen wie folgt vor:
    Geben Sie für Rollenname einen Namen für diese Lambda-Ausführungsrolle ein. Beispiel: lambda_vpc_basic_execution.
    (Optional) Bearbeiten Sie die Beschreibung für Rollenbeschreibung nach Ihren Wünschen.
    Wählen Sie Rolle erstellen.

Weitere Informationen finden Sie unter AWS-Lambda-Ausführungsrolle.

Ihre Lambda-Funktion konfigurieren

  1. Wählen Sie im Funktionsbereich der AWS-Lambda-Konsole, den Namen Ihrer Funktion, die Sie mit Ihrer Amazon VPC verbinden möchten.
  2. Wählen Sie im Bereich Konfiguration unter Ausführungsrolle für Vorhandene Rolle die von Ihnen erstellte IAM-Ausführungsrolle aus. Zum Beispiel lambda_vpc_basic_execution.)
  3. Führen Sie im Bereich Konfiguration unter VPC die folgenden Schritte 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.
  4. Wählen Sie Speichern aus.