Come faccio a dare accesso a internet a una funzione Lambda connessa ad Amazon VPC?
Desidero concedere l'accesso a internet a una funzione AWS Lambda con una connessione ad Amazon Virtual Private Cloud (Amazon VPC).
Breve descrizione
Per impostazione predefinita, le funzioni Lambda vengono eseguite in un VPC gestito da Lambda con accesso a internet. Per accedere alle risorse in un VPC nel tuo account AWS, aggiungi una configurazione VPC alla funzione. Questa configurazione limita la funzione alle risorse all'interno del VPC, a meno che il VPC non abbia accesso a internet.
Anche quando associ una funzione Lambda a una sottorete pubblica, la funzione non può connettersi direttamente a internet. Una funzione in un VPC ha un indirizzo IP privato e richiede un gateway NAT o un'istanza NAT per consentire al VPC di accedere a internet.
Nota: puoi anche usare endpoint VPC per la connessione ai servizi AWS supportati da un Amazon VPC senza accesso a internet.
Risoluzione
Crea una sottorete pubblica e una sottorete privata in Amazon VPC
Crea una sottorete privata per la funzione Lambda e una sottorete pubblica per il gateway NAT. Nel campo Tag del nome inserisci un nome per ogni sottorete che la identifichi come pubblica o privata. Ad esempio, usa Public subnet, Private Lambda 1 e Private Lambda 2.
Nota: è consigliabile creare più di una sottorete privata in diverse Zone di disponibilità. Questa operazione crea ridondanza e consente a Lambda di mantenere un'alta disponibilità per la funzione.
Usa un gateway internet per aggiungere l'accesso a internet alla sottorete
Crea un gateway internet e collegalo al VPC.
Crea un gateway NAT
Crea un gateway NAT. In Sottorete scegli la sottorete che vuoi rendere pubblica. Ad esempio, scegli Public subnet.
(Facoltativo) Verifica la configurazione del gateway NAT.
Crea due tabelle di routing personalizzate
Nota: quando una funzione Lambda in un VPC effettua richieste, la funzione seleziona casualmente una sottorete associata. Se la funzione usa una sottorete configurata in modo errato, viene generato un errore. Per evitare questo problema, assicurati di usare la stessa configurazione per tutte le sottoreti utilizzate dalla funzione.
Per configurare le tabelle di routing personalizzate, completa i passaggi seguenti sia per la sottorete pubblica che per quella privata:
- Crea una tabella di routing personalizzata. Nel campo Tag del nome inserisci per ogni tabella di routing un nome che ti aiuti a identificare la sottorete a cui è associata. Ad esempio, usa Public subnet e Private Lambda.
- Associa la tabella di routing della sottorete alla sottorete privata o pubblica.
- Aggiungi una nuova route alla tabella di routing e includi le configurazioni seguenti:
In Destinazione inserisci 0.0.0.0/0.
In Target scegli Gateway Internet o Gateway NAT. Per la sottorete pubblica, seleziona l'ID del gateway internet. Per la sottorete privata, seleziona l'ID del gateway NAT.
Importante: se usi un'istanza NAT anziché un gateway NAT, scegli Interfaccia di rete anziché Gateway NAT. - Scegli Salva route.
Nota: assicurati che le route verso il gateway NAT abbiano lo stato Attivo. Se il gateway NAT viene eliminato e non hai aggiornato le route, queste assumeranno lo stato Blackhole. Per ulteriori informazioni, consulta Delete a NAT gateway.
Esamina la configurazione della lista di controllo degli accessi di rete
La lista di controllo degli accessi di rete (ACL) predefinita nel VPC consente tutto il traffico in entrata e in uscita. Se cambi le regole dell'ACL di rete, assicurati di consentire le richieste in uscita dalla tua funzione Lambda. Inoltre, assicurati che l'ACL di rete consenta il traffico in entrata seguente:
- Per le sottoreti private che usano un gateway NAT, consenti il traffico in entrata sulle porte temporanee 1024-65535.
- Per le sottoreti private che utilizzano un'istanza NAT, consenti il traffico in entrata sulle porte temporanee utilizzate dal sistema operativo dell'istanza NAT.
Per ulteriori informazioni, consulta Ensure internetwork traffic privacy in Amazon VPC.
Crea un ruolo di esecuzione Lambda
Crea un ruolo di esecuzione Lambda per il VPC. Quindi aggiorna la funzione Lambda in modo che utilizzi il nuovo ruolo di esecuzione Lambda.
Configura la funzione Lambda per la connessione al VPC
Collega la funzione al VPC e configura le impostazioni seguenti:
- In sottoreti seleziona le sottoreti private. Puoi identificarle in base al nome e all'ID di sottorete.
- In Gruppi di sicurezza scegli un gruppo di sicurezza.
Nota: il gruppo di sicurezza predefinito consente tutto il traffico internet in uscita ed è sufficiente per la maggior parte dei casi d'uso. Per ulteriori informazioni, consulta Control traffic to your AWS resources using security groups.
Per le funzioni Lambda con una connessione Amazon VPC, puoi utilizzare un gateway internet solo in uscita per accedere a internet. Per ulteriori informazioni, consulta IPv6 support.
Informazioni correlate
Troubleshoot networking issues in Lambda
Come posso risolvere i problemi di timeout di una funzione Lambda presente in un Amazon VPC?
How do I troubleshoot an ETIMEDOUT error in my Lambda function?
Giving Lambda functions access to resources in an Amazon VPC
Come faccio a risolvere i problemi relativi alla funzione Lambda?
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa