Rete privata con VPC - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Rete privata con VPC

Amazon Virtual Private Cloud (Amazon VPC) è una rete virtuale nel AWS cloud, dedicata al tuo AWS account. Puoi utilizzare Amazon VPC per creare una rete privata per le risorse come database, istanze di cache o servizi interni. Per ulteriori informazioni su Amazon VPC, consulta Cos'è Amazon VPC?

Una funzione Lambda viene sempre eseguita all'interno di un VPC di proprietà del servizio Lambda. Lambda applica le regole di accesso alla rete e di sicurezza a questo VPC e mantiene e monitora il VPC automaticamente. Se la funzione Lambda ha bisogno di accedere alle risorse nel VPC del tuo account, configura la funzione per accedere al VPC. Lambda fornisce risorse gestite denominate Hyperplane ENI, utilizzate dalla funzione Lambda per connettersi dal VPC Lambda a un ENI (Elastic Network Interface) nel tuo account VPC.

Non ci sono costi aggiuntivi per l'utilizzo di un VPC o di una Hyperplane ENI. Sono previsti addebiti per alcuni componenti VPC, ad esempio i gateway NAT. Per ulteriori informazioni, consulta la pagina dei Prezzi di Amazon VPC.

Elementi di rete VPC

Le reti Amazon VPC includono i seguenti elementi di rete:

  • Interfaccia di rete elastica: una interfaccia di rete elastica è un componente di rete logico in un VPC che rappresenta una scheda di rete virtuale.

  • Sottorete: un intervallo di indirizzi IP nel VPC. Puoi aggiungere AWS risorse a una sottorete specificata. Utilizzare una sottorete pubblica per le risorse che devono essere connesse a Internet e una sottorete privata per le risorse da non connettere a Internet.

  • Gruppo di sicurezza: utilizza i gruppi di sicurezza per controllare l'accesso alle AWS risorse in ogni sottorete.

  • Lista di controllo degli accessi (ACL): utilizza un'ACL di rete per fornire ulteriore protezione in una sottorete. L'ACL della sottorete predefinita permette tutto il traffico in entrata e in uscita.

  • Tabella delle rotte: contiene una serie di percorsi che AWS vengono utilizzati per indirizzare il traffico di rete per il tuo VPC. Puoi associare esplicitamente una sottorete a una particolare tabella di instradamento. Per impostazione predefinita, la sottorete è associata alla tabella di instradamento principale.

  • Instradamento: ogni instradamento in una tabella di instradamento specifica un intervallo di indirizzi IP e la destinazione in cui Lambda invia il traffico per questo intervallo. L'instradamento specifica inoltre una destinazione, ovvero il gateway, l'interfaccia di rete o la connessione tramite cui inviare il traffico.

  • Gateway NAT: un servizio NAT ( AWS Network Address Translation) che controlla l'accesso da una sottorete privata VPC privata a Internet.

  • Endpoint VPC: puoi utilizzare un endpoint Amazon VPC per creare connettività privata ai servizi ospitati in AWS, senza richiedere l'accesso su Internet o tramite un dispositivo NAT, una connessione VPN o una connessione. AWS Direct Connect Per ulteriori informazioni, consulta AWS PrivateLink ed endpoint VPC.

Suggerimento

Per configurare la funzione Lambda per accedere a un VPC e a una sottorete, è possibile utilizzare l'API o la console Lambda.

Fai riferimento alla VpcConfig sezione in CreateFunctionper configurare la tua funzione. Vedi Collegamento di funzioni Lambda a un Amazon VPC nel tuo Account AWS per i passaggi dettagliati.

Per ulteriori informazioni sulle definizioni di rete di Amazon VPC, consulta Come funziona Amazon VPC nella Guida per gli sviluppatori di Amazon VPC e Domande frequenti su Amazon VPC.

Collegamento delle funzioni Lambda al VPC

Una funzione Lambda viene sempre eseguita all'interno di un VPC di proprietà del servizio Lambda. Per impostazione predefinita, una funzione Lambda non è connessa ai VPC del tuo account. Quando connetti una funzione a un VPC nel tuo account, questa non ha accesso a Internet a meno che non venga fornito dal VPC.

Lambda accede alle risorse del VPC utilizzando una Hyperplane ENI. Le Hyperplane ENI forniscono funzionalità NAT dal VPC Lambda al VPC del tuo account utilizzando il NAT (V2N) da VPC a VPC. V2N fornisce la connettività dal VPC Lambda al VPC del tuo account, ma non nella direzione opposta.

Quando crei una funzione Lambda (o aggiorni le relative impostazioni del VPC), Lambda assegna una Hyperplane ENI per ogni sottorete nella configurazione VPC della funzione. Più funzioni Lambda possono condividere un'interfaccia di rete se condividono già la stessa sottorete e gruppo di sicurezza.

Per connetterti a un altro AWS servizio, puoi utilizzare gli endpoint VPC per comunicazioni private tra il tuo VPC e i servizi supportati. AWS Un approccio alternativo consiste nell'utilizzare un gateway NAT per indirizzare il traffico in uscita verso un altro servizio. AWS

Per concedere alla funzione l'accesso a Internet, instradare il traffico in uscita a un gateway NAT in una sottorete pubblica. Il gateway NAT dispone di un indirizzo IP pubblico e può connettersi a Internet tramite il gateway Internet del VPC. Per informazioni, consulta Abilita l'accesso a Internet per le funzioni Lambda connesse a VPC.

Sottoreti condivise

La condivisione di VPC consente a più AWS account di creare le proprie risorse applicative, come le istanze Amazon EC2 e le funzioni Lambda, in cloud privati virtuali (VPC) condivisi e gestiti centralmente. In questo modello, l'account proprietario del VPC (proprietario) condivide una o più sottoreti con altri account (partecipanti) che appartengono alla stessa organizzazione. AWS

Per accedere alle risorse private, connetti la tua funzione a una sottorete privata condivisa nel VPC. Il proprietario della sottorete deve condividerla con te prima che tu possa connettervi una funzione. Il proprietario della sottorete può anche annullarne la condivisione in un secondo momento, rimuovendo così la connettività. Per dettagli su come condividere, annullare la condivisione e gestire le risorse VPC nelle sottoreti condivise, consulta la pagina Come condividere un VPC con altri account nella Guida di Amazon VPC.

Hyperplane ENI di Lambda

Una Hyperplane ENI è una risorsa di rete gestita creata e gestita dal servizio Lambda. Più ambienti di esecuzione nel VPC Lambda possono utilizzare una Hyperplane ENI per accedere in modo sicuro alle risorse all'interno dei VPC nel tuo account. Le Hyperplane ENI forniscono funzionalità NAT dal VPC Lambda al VPC del tuo account.

Per ogni sottorete, Lambda crea un'interfaccia di rete per ogni set unico di gruppi di sicurezza. Le funzioni dell'account che condividono la stessa combinazione di sottorete e gruppo di sicurezza utilizzano le stesse interfacce di rete. Le connessioni effettuate tramite il livello Hyperplane vengono monitorate automaticamente, anche se la configurazione del gruppo di sicurezza non lo richiede. I pacchetti in entrata dal VPC che non corrispondono alle connessioni stabilite vengono eliminati al livello Hyperplane. Per ulteriori informazioni, consulta Tracciamento delle connessioni dei gruppi di sicurezza nella Guida per l'utente di Amazon EC2.

Poiché le funzioni del tuo account condividono le risorse dell'ENI, il ciclo di dell'vita ENI è più complesso di altre risorse Lambda. Nelle sezioni seguenti viene descritto il ciclo di vita dell'ENI.

Creazione di ENI

Lambda può creare risorse Hyperplane ENI per una nuova funzione abilitata al VPC o per una modifica della configurazione VPC a una funzione esistente. La funzione rimane in sospeso mentre Lambda crea le risorse richieste. Quando l'Hyperplane ENI è pronta, la funzione passa allo stato attivo e l'ENI diventa disponibile per l'uso. Lambda può richiedere alcuni minuti per creare l'Hyperplane ENI.

Per una nuova funzione abilitata per il VPC, tutte le invocazioni o altre operazioni API che agiscono sulla funzione non funzionano fino a quando lo stato della funzione non passa ad attivo.

Per una modifica della configurazione VPC a una funzione esistente, qualsiasi invocazione di funzione continua a utilizzare l'Hyperplane ENI associata alla vecchia configurazione della sottorete e del gruppo di sicurezza fino a quando lo stato della funzione non passa ad attivo.

Se una funzione Lambda rimane inattiva per 30 giorni, Lambda recupera gli ENI Hyperplane non utilizzati e imposta lo stato della funzione su inattivo. La successiva invocazione fa sì che Lambda riattivi la funzione di inattività. L'invocazione ha esito negativo e la funzione entra nello stato in sospeso fino a quando Lambda non completa la creazione o l'allocazione di una Hyperplane ENI.

Per ulteriori informazioni sugli stati delle funzioni, consulta Stati funzione Lambda.

Gestione delle ENI

Lambda utilizza le autorizzazioni nel ruolo di esecuzione della funzione per creare e gestire le interfacce di rete. Lambda crea una Hyperplane ENI quando viene definita una combinazione univoca di sottorete e gruppo di sicurezza per una funzione abilitata al VPC in un account. Lambda riutilizza l'Hyperplane ENI per altre funzioni abilitate al VPC nel tuo account che utilizzano la stessa combinazione di sottorete e gruppo di sicurezza.

Non vi è una quota sul numero di funzioni Lambda che possono utilizzare la stessa Hyperplane ENI. Tuttavia, ogni Hyperplane ENI supporta fino a 65.000 connessioni/porte. Se il numero di connessioni supera 65.000, Lambda crea una nuova Hyperplane ENI per fornire connessioni aggiuntive.

Se aggiorni la configurazione della funzione per accedere a un VPC diverso, Lambda interrompe la connettività all'Hyperplane ENI nel VPC precedente. Il processo per aggiornare la connettività a un nuovo VPC può richiedere alcuni minuti. Durante questo periodo, le invocazioni della funzione continuano a utilizzare il VPC precedente. Al termine dell'aggiornamento, le nuove invocazioni iniziano a utilizzare l'Hyperplane ENI nel nuovo VPC. A questo punto, la funzione Lambda non è più collegata al VPC precedente.

Eliminazione di ENI

Quando aggiorni una funzione per rimuovere la configurazione VPC, Lambda richiede fino a 20 minuti per eliminare l'Hyperplane ENI collegata. Lambda elimina l'ENI solo se nessun'altra funzione (o versione della funzione pubblicata) utilizza l'Hyperplane ENI.

Per eliminare l'Hyperplane ENI, Lambda si basa sulle autorizzazioni del ruolo di esecuzione della funzione. Se elimini il ruolo di esecuzione prima che Lambda abbia eliminato l'Hyperplane ENI, Lambda non sarà più in grado di eliminare l'Hyperplane ENI. Puoi eseguire manualmente l'eliminazione.

Lambda non elimina le interfacce di rete utilizzate dalle funzioni o dalle versioni delle funzioni nel tuo account. Puoi utilizzare il Finder ENI Lambda per identificare le funzioni o le versioni delle funzioni che utilizzano una Hyperplane ENI. Per tutte le funzioni o le versioni di funzioni che non sono più necessarie, puoi rimuovere la configurazione VPC in modo che Lambda elimini l'Hyperplane ENI.

Connessioni

Lambda supporta due tipi di connessioni: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol).

Quando crei un VPC, Lambda crea automaticamente un set di opzioni DHCP e le associa al VPC. Puoi configurare le tue opzioni DHCP impostate per il VPC. Per ulteriori informazioni, consulta Opzioni DHCP di Amazon VPC.

Amazon fornisce un server DNS (il risolutore Amazon Route 53) per il tuo VPC. Per ulteriori informazioni, consulta Supporto DNS per il tuo VPC.

Supporto IPv6

Lambda supporta connessioni in entrata agli endpoint dual-stack pubblici di Lambda e connessioni in uscita a sottoreti VPC dual-stack su IPv6.

In entrata

Per richiamare la funzione su IPv6, usa gli endpoint dual-stack pubblici di Lambda. Endpoint dual-stack che supportano sia IPv4 sia IPv6. Gli endpoint dual-stack Lambda utilizzano la seguente sintassi:

protocol://lambda.us-east-1.api.aws

È inoltre possibile utilizzare URL della funzione Lambda per richiamare la funzione su IPv6. Gli endpoint URL della funzione hanno il formato seguente:

https://url-id.lambda-url.us-east-1.on.aws
In uscita

La funzione può connettersi alle risorse nelle sottoreti VPC dual-stack su IPv6. Per impostazione predefinita, questa opzione è disabilitata. Per consentire il traffico IPv6 in uscita, usa la console o l'opzione --vpc-config Ipv6AllowedForDualStack=true con il comando create-function o update-function-configuration.

Nota

Per consentire il traffico IPv6 in uscita in un VPC, tutte le sottoreti connesse alla funzione devono essere sottoreti dual-stack. Lambda non supporta connessioni IPv6 in uscita per sottoreti solo IPv6 in un VPC, connessioni IPv6 in uscita per funzioni che non sono connesse a un VPC o connessioni IPv6 in entrata che utilizzano endpoint VPC (AWS PrivateLink).

È possibile aggiornare il codice della funzione per connettersi esplicitamente alle risorse di sottorete tramite IPv6. Il seguente esempio di Python apre un socket e si connette a un server IPv6.

Esempio — Connettiti al server IPv6
def connect_to_server(event, context): server_address = event['host'] server_port = event['port'] message = event['message'] run_connect_to_server(server_address, server_port, message) def run_connect_to_server(server_address, server_port, message): sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, 0) try: # Send data sock.connect((server_address, int(server_port), 0, 0)) sock.sendall(message.encode()) BUFF_SIZE = 4096 data = b'' while True: segment = sock.recv(BUFF_SIZE) data += segment # Either 0 or end of data if len(segment) < BUFF_SIZE: break return data finally: sock.close()

Sicurezza

AWS fornisce gruppi di sicurezza e ACL di rete per aumentare la sicurezza nel tuo VPC. I gruppi di sicurezza controllano il traffico in entrata e in uscita per le tue risorse, mentre le liste di controllo degli accessi di rete controllano il traffico in entrata e in uscita per le tue sottoreti. I gruppi di sicurezza forniscono un controllo di accesso sufficiente per la maggior parte delle sottoreti. Se desideri un livello di sicurezza aggiuntivo per il tuo VPC, puoi utilizzare le liste di controllo degli accessi di rete. Per ulteriori informazioni, consulta Riservatezza del traffico Internet in Amazon VPC. Ogni sottorete creata viene automaticamente associata alla lista di controllo accessi di rete predefinita del VPC. Puoi modificare l'associazione E modificare il contenuto delle lista di controllo accessi di rete.

Per le best practice generali relative alla sicurezza, consulta Best practice relative alla sicurezza del VPC. Per ulteriori informazioni su come utilizzare IAM per gestire l'accesso all'API e alle risorse Lambda, consulta Autorizzazioni AWS Lambda.

È possibile utilizzare chiavi di condizione Lambda specifiche per le impostazioni VPC per fornire controlli di autorizzazione aggiuntivi per le funzioni Lambda. Per ulteriori informazioni sulle chiavi di condizione del VPC, consulta Utilizzo delle chiavi di condizione IAM per le impostazioni del VPC.

Nota

Le funzioni Lambda possono essere richiamate dalla rete Internet pubblica o dagli endpoint AWS PrivateLink. Puoi accedere all'URL della funzione solo tramite Internet pubblico. Sebbene le funzioni Lambda lo supportino AWS PrivateLink, gli URL delle funzioni no.

Osservabilità

I flussi di log VPC possono essere utilizzati per acquisire informazioni sul traffico IP verso e dalle interfacce di rete nel VPC. Puoi pubblicare i dati dei log di flusso su Amazon CloudWatch Logs o Amazon S3. Dopo aver creato un log di flusso, puoi recuperare e visualizzare i relativi dati nella destinazione scelta.

Nota: quando si collega una funzione a un VPC, i messaggi di CloudWatch registro non utilizzano le route VPC. Lambda li invia utilizzando l'instradamento comune per i log.