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à.
Configurazione del cluster Amazon MSK e della rete Amazon VPC per Lambda
Per connettere la tua AWS Lambda funzione al cluster Amazon MSK, devi configurare correttamente il cluster e l'Amazon Virtual Private Cloud (VPC) in cui risiede. Questa pagina descrive come configurare il cluster e il VPC. Se il cluster e il VPC sono già configurati correttamente, consulta Configurazione delle origini eventi di Amazon MSK per Lambda Configurare la mappatura delle sorgenti degli eventi.
Argomenti
Panoramica dei requisiti di configurazione di rete per le integrazioni Lambda e MSK
La configurazione di rete richiesta per un'integrazione Lambda e MSK dipende dall'architettura di rete dell'applicazione. Ci sono tre risorse principali coinvolte in questa integrazione: il cluster Amazon MSK, la funzione Lambda e la mappatura delle sorgenti degli eventi Lambda. Ognuna di queste risorse risiede in un VPC diverso:
-
Il tuo cluster Amazon MSK risiede in genere in una sottorete privata di un VPC che gestisci.
-
La tua funzione Lambda risiede in un AWS VPC gestito di proprietà di Lambda.
-
La mappatura delle sorgenti degli eventi Lambda risiede in un altro AWS VPC gestito di proprietà di Lambda, separato dal VPC che contiene la funzione.
La mappatura dell'origine degli eventi è la risorsa intermedia tra il cluster MSK e la funzione Lambda. La mappatura delle sorgenti degli eventi ha due funzioni principali. Innanzitutto, esegue il polling del cluster MSK per verificare la presenza di nuovi messaggi. Quindi, richiama la funzione Lambda con quei messaggi. Poiché queste tre risorse sono diverse VPCs, sia le operazioni di poll che quelle di invoke richiedono chiamate di rete tra VPC.
I requisiti di configurazione di rete per la mappatura delle sorgenti degli eventi dipendono dal fatto che venga utilizzata la modalità provisioning o la modalità on-demand, come illustrato nel diagramma seguente:

Il modo in cui la mappatura delle sorgenti degli eventi Lambda analizza il cluster MSK alla ricerca di nuovi messaggi è lo stesso in entrambe le modalità. Per stabilire una connessione tra la mappatura delle sorgenti degli eventi e il cluster MSK, Lambda crea un ENI iperpiano (o ne riutilizza uno esistente, se disponibile) nella sottorete privata per stabilire una connessione sicura. Come illustrato nel diagramma, questo ENI iperpiano utilizza la configurazione della sottorete e del gruppo di sicurezza del cluster MSK, non la funzione Lambda.
Dopo aver analizzato il messaggio dal cluster, il modo in cui Lambda richiama la funzione è diverso in ciascuna modalità:
-
In modalità provisioned, Lambda gestisce automaticamente la connessione tra il VPC di mappatura della sorgente degli eventi e la funzione VPC. Pertanto, non è necessario alcun componente di rete aggiuntivo per richiamare correttamente la funzione.
-
In modalità on-demand, la mappatura delle sorgenti degli eventi Lambda richiama la funzione tramite un percorso attraverso il VPC gestito dal cliente. Per questo motivo, è necessario configurare un gateway NAT nella sottorete pubblica del VPC o gli AWS PrivateLinkendpoint nella sottorete privata del VPC che forniscono l'accesso a Lambda (STS) e, facoltativamente,.AWS Security Token ServiceAWS Secrets Manager La configurazione corretta di una di queste opzioni consente una connessione tra il VPC e il VPC di runtime gestito da Lambda, necessario per richiamare la funzione.
Un gateway NAT consente alle risorse della sottorete privata di accedere alla rete Internet pubblica. L'utilizzo di questa configurazione significa che il traffico attraversa Internet prima di richiamare la funzione Lambda. AWS PrivateLink gli endpoint consentono alle sottoreti private di connettersi in modo sicuro ai AWS servizi o ad altre risorse VPC private senza attraversare la rete Internet pubblica. Vedi Configurazione di un gateway NAT per un'origine di eventi MSK o Configurazione degli AWS PrivateLink endpoint per un'origine di eventi MSK per i dettagli su come configurare queste risorse.
Finora, abbiamo dato per scontato che il cluster MSK risieda in una sottorete privata all'interno del VPC, che è il caso più comune. Tuttavia, anche se il cluster MSK si trova in una sottorete pubblica all'interno del VPC, è necessario configurare gli AWS PrivateLink endpoint per abilitare una connessione sicura. La tabella seguente riassume i requisiti di configurazione della rete in base a come si configura il cluster MSK e la mappatura delle sorgenti degli eventi Lambda:
Ubicazione del cluster MSK (in VPC gestito dal cliente) | Modalità di scalabilità della mappatura delle sorgenti di eventi Lambda | Configurazione di rete richiesta |
---|---|---|
Sottorete privata |
Modalità on demand |
Gateway NAT (nella sottorete pubblica del VPC) o AWS PrivateLink endpoint (nella sottorete privata del VPC) per consentire l'accesso a Lambda e, facoltativamente, a Secrets Manager. AWS STS |
Sottorete pubblica |
Modalità on demand |
AWS PrivateLink endpoint (nella sottorete pubblica del tuo VPC) per abilitare l'accesso a Lambda e, facoltativamente AWS STS, a Secrets Manager. |
Sottorete privata |
Modalità provisioning |
Nessuno |
Sottorete pubblica |
Modalità provisioning |
Nessuno |
Inoltre, i gruppi di sicurezza associati al cluster MSK devono consentire il traffico sulle porte corrette. Assicuratevi di aver configurato le seguenti regole per i gruppi di sicurezza:
-
Regole in entrata: consente tutto il traffico sulla porta broker predefinita. La porta utilizzata da MSK dipende dal tipo di autenticazione sul cluster:
9098
per l'autenticazione IAM, per SASL/SCRAM e9096
per TLS.9094
In alternativa, è possibile utilizzare una regola del gruppo di sicurezza autoreferenziante per consentire l'accesso da istanze all'interno dello stesso gruppo di sicurezza. -
Regole in uscita: consentono tutto il traffico sulla porta
443
per destinazioni esterne se la funzione deve comunicare con altri servizi. AWS In alternativa, puoi utilizzare una regola del gruppo di sicurezza autoreferenziale per limitare l'accesso al broker se non hai bisogno di comunicare con altri servizi. AWS -
Regole di ingresso degli endpoint Amazon VPC: se utilizzi un endpoint Amazon VPC, il gruppo di sicurezza associato all'endpoint deve consentire il traffico in entrata sulla porta proveniente dal gruppo di sicurezza del cluster.
443
Configurazione di un gateway NAT per un'origine di eventi MSK
Puoi configurare un gateway NAT per consentire alla mappatura della fonte degli eventi di interrogare i messaggi dal cluster e richiamare la funzione tramite un percorso attraverso il tuo VPC. Questo è necessario solo se la mappatura delle sorgenti degli eventi utilizza la modalità on demand e il cluster risiede all'interno di una sottorete privata del VPC. Se il cluster risiede in una sottorete pubblica del VPC o la mappatura delle sorgenti degli eventi utilizza la modalità provisioning, non è necessario configurare un gateway NAT.
Un gateway NAT consente alle risorse di una sottorete privata di accedere alla rete Internet pubblica. Se hai bisogno di connettività privata a Lambda, vedi Configurazione degli AWS PrivateLink endpoint per un'origine di eventi MSK invece.
Dopo aver configurato il gateway NAT, è necessario configurare le tabelle di routing appropriate. Ciò consente al traffico proveniente dalla sottorete privata di indirizzarsi verso la rete Internet pubblica tramite il gateway NAT.

I seguenti passaggi guidano l'utente nella configurazione di un gateway NAT utilizzando la console. Ripetere questi passaggi se necessario per ogni zona di disponibilità (AZ).
Per configurare un gateway NAT e un routing corretto (console)
-
Segui la procedura descritta in Creare un gateway NAT, tenendo presente quanto segue:
-
I gateway NAT devono sempre risiedere in una sottorete pubblica. Crea gateway NAT con connettività pubblica.
-
Se il tuo cluster MSK viene replicato su più server AZs, crea un gateway NAT per AZ. Ad esempio, in ogni AZ, il tuo VPC dovrebbe avere una sottorete privata contenente il cluster e una sottorete pubblica contenente il gateway NAT. Per una configurazione con tre AZs, avrai tre sottoreti private, tre sottoreti pubbliche e tre gateway NAT.
-
-
Dopo aver creato il gateway NAT, apri la console Amazon VPC
e scegli Route tables nel menu a sinistra. -
Selezionare Create route table (Crea tabella di instradamento).
-
Associate questa tabella di routing al VPC che contiene il vostro cluster MSK. Facoltativamente, inserisci un nome per la tabella dei percorsi.
-
Selezionare Create route table (Crea tabella di instradamento).
-
Scegli la tabella dei percorsi che hai appena creato.
-
Nella scheda Associazioni di sottoreti, scegli Modifica associazioni di sottoreti.
-
Associate questa tabella di routing alla sottorete privata che contiene il cluster MSK.
-
-
Selezionare Modifica route.
-
Scegli Aggiungi percorso:
-
Per Destinazione scegliere
0.0.0.0/0
. -
Per Target, scegli NAT gateway.
-
Nella casella di ricerca, scegli il gateway NAT che hai creato nel passaggio 1. Questo dovrebbe essere il gateway NAT che si trova nella stessa AZ della sottorete privata che contiene il cluster MSK (la sottorete privata associata a questa tabella di routing nel passaggio 6).
-
-
Scegli Save changes (Salva modifiche).
Configurazione degli AWS PrivateLink endpoint per un'origine di eventi MSK
Puoi configurare gli AWS PrivateLink endpoint per eseguire il polling dei messaggi dal tuo cluster e richiamare la funzione tramite un percorso attraverso il tuo VPC. Questi endpoint dovrebbero consentire al cluster MSK di accedere a quanto segue:
-
Il servizio Lambda
-
Facoltativamente, il AWS Secrets Managerservizio. Questo è necessario se il segreto richiesto per l'autenticazione del cluster è archiviato in Secrets Manager.
La configurazione PrivateLink degli endpoint è necessaria solo se la mappatura delle sorgenti degli eventi utilizza la modalità on-demand. Se la mappatura delle sorgenti degli eventi utilizza la modalità provisioned, Lambda stabilisce automaticamente le connessioni necessarie.
PrivateLink gli endpoint consentono un accesso sicuro e privato ai servizi tramite. AWS AWS PrivateLink In alternativa, per configurare un gateway NAT per consentire al cluster MSK di accedere alla rete Internet pubblica, vedere. Configurazione di un gateway NAT per un'origine di eventi MSK
Dopo aver configurato gli endpoint VPC, il cluster MSK dovrebbe avere accesso diretto e privato a Lambda, STS e, facoltativamente, a Secrets Manager.

I seguenti passaggi guidano l'utente nella configurazione di un endpoint utilizzando la console. PrivateLink Ripetere questi passaggi se necessario per ogni endpoint (Lambda, STS, Secrets Manager).
Per configurare gli PrivateLink endpoint VPC (console)
-
Apri la console Amazon VPC
e seleziona Endpoints nel menu a sinistra. -
Seleziona Crea endpoint.
-
Facoltativamente, inserisci un nome per il tuo endpoint.
-
Per Tipo, scegli AWS servizi.
-
In Servizi, inizia a digitare il nome del servizio. Ad esempio, per creare un endpoint per la connessione a Lambda,
lambda
digita nella casella di ricerca. -
Nei risultati, dovresti vedere l'endpoint del servizio nella regione corrente. Ad esempio, nella regione Stati Uniti orientali (Virginia settentrionale), dovresti vedere.
com.amazonaws.us-east-2.lambda
Seleziona questo servizio. -
In Impostazioni di rete, selezionare il VPC che contiene il cluster MSK.
-
In Sottoreti, seleziona AZs quello in cui si trova il tuo cluster MSK.
-
Per ogni AZ, in Subnet ID, scegli la sottorete privata che contiene il cluster MSK.
-
-
In Gruppi di sicurezza, seleziona i gruppi di sicurezza associati al tuo cluster MSK.
-
Seleziona Crea endpoint.
Per impostazione predefinita, gli endpoint Amazon VPC dispongono di policy IAM aperte che consentono un ampio accesso alle risorse. La best practice consiste nel limitare queste policy per eseguire le azioni necessarie utilizzando quell'endpoint. Ad esempio, per l'endpoint Secrets Manager, è possibile modificarne la policy in modo che solo il ruolo di esecuzione della funzione possa accedere al segreto.
Esempio Politica degli endpoint VPC: endpoint Secrets Manager
{ "Statement": [ { "Action": "secretsmanager:GetSecretValue", "Effect": "Allow", "Principal": { "AWS": [
"arn:aws::iam::123456789012:role/my-role"
] }, "Resource":"arn:aws::secretsmanager:us-west-2:123456789012:secret:my-secret"
} ] }
Per gli endpoint AWS STS e Lambda, puoi limitare il principale chiamante al principale del servizio Lambda. Tuttavia, assicurati di utilizzarlo "Resource": "*"
in queste politiche.
Esempio Politica degli endpoint VPC — endpoint AWS STS
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }
Esempio Politica degli endpoint VPC — Endpoint Lambda
{ "Statement": [ { "Action": "lambda:InvokeFunction", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }