In che modo posso consentire l'accesso a Internet a una funzione Lambda connessa a un Amazon VPC?

Ultimo aggiornamento: 06/10/2021

Voglio che la mia funzione AWS Lambda connessa a un Amazon Virtual Private Cloud (Amazon VPC) abbia accesso a Internet. Come la configuro?

Breve descrizione

L'accesso a Internet da una sottorete privata richiede la network address translation (NAT). Per consentire l'accesso a Internet a una funzione Lambda connessa a un Amazon VPC, devi instradare il traffico in uscita in un gateway NAT o un'istanza NAT in una sottorete pubblica.

Per ulteriori informazioni, consulta la sezione Gateway Internet nella Guida per l'utente di Amazon VPC. Per una configurazione di esempio, consulta invece la sezione VPC con sottoreti pubbliche e private (NAT).

Per risolvere i problemi di accesso a Internet con le funzioni Lambda connesse ad Amazon VPC

Consulta In che modo è possibile risolvere i problemi di accesso a Internet per una funzione AWS Lambda che si trova in un Amazon VPC utilizzando AWS Systems Manager?

Nota: puoi anche utilizzare gli endpoint Amazon VPC per connetterti ai servizi AWS supportati da un Amazon VPC senza accesso a Internet.

Risoluzione

(Facoltativo) Crea un nuovo Amazon VPC utilizzando la procedura guidata VPC nella Console di gestione AWS

Nota: se utilizzi la procedura guidata VPC per creare un nuovo Amazon VPC, puoi passare alla sezione seguente: Crea un ruolo di esecuzione Lambda per il tuo VPC.

1.    Apri la procedura guidata VPC nella Console di gestione AWS.

2.    Scegli VPC con sottoreti pubbliche e private. La nuova sottorete pubblica e la nuova sottorete privata, inclusi il gateway Internet e il gateway NAT associati, vengono visualizzate nella console Amazon VPC.

Creazione di una sottorete pubblica e una o più sottoreti private nel tuo Amazon VPC

Per istruzioni, consulta Creazione di una sottorete nel VPC per creare tutte le sottoreti.

Quando crei le sottoreti, per ogni sottorete inserisci in Nome tag un nome che la identifichi come pubblica o privata. Ad esempio: Sottorete pubblica, Privata Lambda 1 e Privata Lambda 2.

Nota: una best practice consiste nel creare più di una sottorete privata in diverse zone di disponibilità. Questa pratica crea ridondanza e consente al servizio Lambda di mantenere un'elevata disponibilità per la tua funzione.

Crea un gateway Internet e collegalo al tuo Amazon VPC

Creazione di un gateway NAT

Per istruzioni, consulta Creazione di un gateway NAT. Quando crei il gateway NAT, in Sottorete scegli la sottorete che desideri rendere pubblica. (Dall'esempio precedente: Sottorete pubblica.)

Nota: per testare la configurazione del tuo gateway NAT, consulta Test del gateway NAT pubblico nella guida per l'utente di Amazon VPC.

Crea due tabelle di routing personalizzate, una per la sottorete pubblica e una per la sottorete privata

Nota: una funzione Lambda connessa ad Amazon VPC seleziona in maniera casuale una sottorete associata al momento della richiesta. Tutte le sottoreti utilizzate dalla funzione devono avere la stessa configurazione per evitare errori casuali causati da Lambda per l'utilizzo di una sottorete configurata in modo errato.

Per istruzioni, consulta Creazione di una tabella di routing personalizzata. Quando crei le tabelle di routing, per ogni tabella di routing inserisci in Nome tag un nome che consenta di identificare a quale sottorete è associata. Ad esempio: Sottorete pubblica e Privata Lambda.

Per ogni tabella di routing, assicurati di eseguire le seguenti operazioni:

Per la tabella di routing della sottorete pubblica

1.    Associa la tabella di routing della sottorete (Sottorete pubblica) alla sottorete che desideri rendere pubblica.

2.    Aggiungi un nuovo routing alla tabella di routing con le seguenti configurazioni:
In Destinazione, inserisci 0.0.0.0/0.
In Destinazione, scegli Gateway Internet, quindi l'ID (igw-123example) del gateway Internet creato.
Scegli Salva routing.

Per la tabella di routing della sottorete privata

1.    Associa la tabella di routing della sottorete (Privata Lambda) alle sottoreti private.

2.    Aggiungi un nuovo routing alla tabella di routing con le seguenti configurazioni:
In Destinazione, inserisci 0.0.0.0/0.
In Destinazione, scegli Gateway NAT. Quindi, scegli l'ID del gateway NAT (nat-123example) creato.
Importante: se utilizzi un'istanza NAT, scegli invece Interfaccia di rete.
Scegli Salva routing.

Nota: assicurati che i routing verso il gateway NAT siano attivi. Se il gateway NAT viene cancellato e non hai aggiornato i routing, il loro stato rimarrà su buco nero. Per ulteriori informazioni, consulta Aggiornamento della tabella di routing.

Verifica che la lista di controllo degli accessi di rete consenta le richieste in uscita dalla funzione Lambda e il traffico in entrata come necessario

Lalista di controllo accessi alla rete predefinita nel tuo Amazon VPC consente tutto il traffico in entrata e in uscita. Se modifichi le regole della lista di controllo degli accessi di rete, assicurati di consentire comunque le richieste in uscita dalla funzione Lambda.

Inoltre, assicurati che la lista di controllo degli accessi di rete consenta il seguente traffico in entrata in base alla configurazione VPC:

Per sottoreti private che utilizzano un gateway NAT

Consenti il traffico in entrata sulle porte temporanee 1024-65535.

Per sottoreti private che utilizzano un'istanza NAT

Consenti il traffico in entrata sulle porte temporanee utilizzate dal sistema operativo dell'istanza NAT.

Nota: per ulteriori informazioni, consulta Riservatezza del traffico Internet in Amazon VPC.

Creazione di un ruolo di esecuzione Lambda per VPC

1.    Apri la pagina Ruoli nella console di AWS Identity and Access Management (IAM).

2.    Scegli Crea ruolo. Viene visualizzata la pagina Crea ruolo.

3.    Nella pagina Crea ruolo, effettua le seguenti operazioni:
In Seleziona il tipo di entità attendibile, seleziona Servizio AWS.
In Casi d’uso comuni, scegli Lambda.
Seleziona Successivo: autorizzazioni.
In Collega policy delle autorizzazioni, cerca AWSLambdaVPCAccessExecutionRole. Seleziona la policy cercata. Poi seleziona Successivo: Tag.
(Facoltativo) Aggiungi i tag secondo il tuo caso d'uso.
Seleziona Successivo: esamina.
In Nome ruolo, inserisci un nome per il ruolo di esecuzione Lambda. Ad esempio: lambda_vpc_basic_execution.
(Facoltativo) In Descrizione ruolo, inserisci una descrizione del ruolo.
Scegli Crea ruolo.

Per ulteriori informazioni, consulta Ruolo di esecuzione AWS Lambda e Creazione di un ruolo di esecuzione nella console di IAM.

Configura la tua funzione Lambda per connetterti al tuo Amazon VPC

1.    Apri la pagina Funzioni nella console Lambda.

2.    Scegli il nome della funzione che desideri connettere al tuo Amazon VPC.

3.    Scegli Configurazione.

4.    Sotto Ruolo di esecuzione, in Ruolo esistente scegli il ruolo di esecuzione Lambda creato.

5.    In VPC, scegli Modifica. Quindi, procedi come segue:
In Virtual Private Cloud (VPC), scegli il tuo VPC.
In Sottoreti, seleziona le sottoreti private create. Identificale in base ai loro ID sottorete (e ai nomi, se presenti).
In Gruppi di sicurezza, scegli un gruppo di sicurezza.
Nota: il gruppo di sicurezza di default consente tutto il traffico Internet in uscita ed è sufficiente per la maggior parte dei casi d'uso. Per ulteriori informazioni, consulta i gruppi di sicurezza del tuo VPC.
Scegli Salva.