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 tuo 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 per configurare la mappatura dell'origine degli eventi.
Argomenti
Panoramica dei requisiti di configurazione di rete per le integrazioni Lambda e MSK
La configurazione di rete richiesta per un'integrazione tra Lambda e MSK dipende dall'architettura di rete dell'applicazione. Sono tre le risorse principali coinvolte in questa integrazione: il cluster Amazon MSK, la funzione Lambda e la mappatura delle sorgenti di eventi Lambda. Ognuna di queste risorse risiede in un VPC diverso:
-
Il cluster Amazon MSK si trova 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 dell'origine degli eventi Lambda risiede in un altro VPC AWS gestito di proprietà di Lambda, separato dal VPC che contiene la tua funzione.
La mappatura dell'origine degli eventi è la risorsa intermediaria tra il cluster MSK e la funzione Lambda. La mappatura dell'origine 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 si trovano in VPC diversi, sia le operazioni di polling che di invoke richiedono chiamate di rete tra VPC.
I requisiti di configurazione di rete per la mappatura dell'origine degli eventi dipendono dal fatto che utilizzi la modalità provisioned o la modalità on-demand, come mostrato nel diagramma seguente:
Il modo in cui la mappatura delle sorgenti di eventi Lambda esegue il polling del cluster MSK per individuare nuovi messaggi è lo stesso in entrambe le modalità. Per stabilire una connessione tra la mappatura dell'origine 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 iperpiano ENI utilizza la configurazione della sottorete e del gruppo di sicurezza del cluster MSK, non della 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 dell'evento e la funzione VPC. Quindi, non è necessario alcun componente di rete aggiuntivo per richiamare correttamente la funzione.
-
In modalità on-demand, la mappatura dell'origine degli eventi Lambda richiama la funzione utilizzando un percorso attraverso il VPC gestito dal cliente. Per questo motivo, è necessario configurare un gateway NAT nella sottorete pubblica del VPC o gli AWS PrivateLink endpoint nella sottorete privata del VPC che forniscono l'accesso a Lambda, (STS) e, facoltativamente,. Servizio di token di sicurezza AWS AWS Secrets Manager La corretta configurazione di una di queste opzioni consente una connessione tra il VPC e il VPC di Lambda-managed runtime, necessaria 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 a AWS servizi o altre risorse VPC private senza attraversare la rete Internet pubblica. Consulta Configurazione di un gateway NAT per una sorgente di eventi MSK o Configurazione AWS PrivateLink endpoint per una sorgente di eventi MSK per i dettagli su come configurare queste risorse.
Finora, abbiamo ipotizzato 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 AWS PrivateLink gli endpoint per abilitare una connessione sicura. La tabella seguente riassume i requisiti di configurazione di rete in base alla configurazione del cluster MSK e alla mappatura delle sorgenti di eventi Lambda:
| Posizione del cluster MSK (in un VPC gestito dal cliente) | modalità di ridimensionamento della mappatura della sorgente degli eventi Lambda | Configurazione di rete richiesta |
|---|---|---|
|
Sottorete privata |
On-demand modalità |
Gateway NAT (nella sottorete pubblica del VPC) o AWS PrivateLink endpoint (nella sottorete privata del VPC) per consentire l'accesso a Lambda e, facoltativamente, AWS STS a Secrets Manager. |
|
Sottorete pubblica |
On-demand modalità |
AWS PrivateLink endpoint (nella sottorete pubblica del tuo VPC) per consentire 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. Assicurati di aver configurato le seguenti regole del gruppo di sicurezza:
-
Regole in entrata: consenti tutto il traffico sulla porta del broker predefinita. La porta utilizzata da MSK dipende dal tipo di autenticazione sul cluster:
9098per l'autenticazione IAM, per e90969094per SASL/SCRAM TLS. In alternativa, puoi utilizzare una regola del gruppo di sicurezza autoreferenziale per consentire l'accesso da istanze all'interno dello stesso gruppo di sicurezza. -
Regole in uscita: consenti tutto il traffico sulla porta
443per destinazioni esterne se la tua funzione deve comunicare con altri servizi. AWS In alternativa, puoi utilizzare una regola di gruppo di sicurezza autoreferenziale per limitare l'accesso al broker se non hai bisogno di comunicare con altri servizi. AWS -
Regole in entrata per gli endpoint Amazon VPC: se utilizzi un endpoint Amazon VPC, il gruppo di sicurezza associato all'endpoint deve consentire il traffico in entrata sulla porta dal gruppo di sicurezza del cluster.
443
Configurazione di un gateway NAT per una sorgente di eventi MSK
È possibile configurare un gateway NAT per consentire alla mappatura della sorgente degli eventi di interrogare i messaggi dal cluster e richiamare la funzione utilizzando un percorso attraverso il VPC. Ciò è necessario solo se la mappatura dell'origine degli eventi utilizza la modalità su richiesta 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 dell'origine degli eventi utilizza la modalità provisioned, non è necessario configurare un gateway NAT.
Le risorse in una sottorete privata richiedono un gateway NAT per accedere alla rete Internet pubblica. Se hai bisogno di una connettività privata a Lambda, consulta invece. Configurazione AWS PrivateLink endpoint per una sorgente di eventi MSK
Dopo aver configurato il gateway NAT, è necessario configurare le tabelle di routing appropriate. Ciò consente al traffico proveniente dalla sottorete privata di essere indirizzato alla rete Internet pubblica tramite il gateway NAT.
I passaggi seguenti guidano l'utente nella configurazione di un gateway NAT tramite la console. Ripetere questi passaggi se necessario per ciascuna zona di disponibilità (AZ).
Per configurare un gateway NAT e il routing corretto (console)
-
Segui i passaggi descritti in Creazione di un gateway NAT, tenendo presente quanto segue:
-
I gateway NAT devono sempre risiedere in una sottorete pubblica. Crea gateway NAT con connettività pubblica. https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
-
Se il tuo cluster MSK è replicato su più AZ, crea un gateway NAT per AZ. Ad esempio, in ogni AZ, il VPC dovrebbe avere una sottorete privata contenente il cluster e una sottorete pubblica contenente il gateway NAT. Per una configurazione con tre AZ, avrai tre sottoreti private, tre sottoreti pubbliche e tre gateway NAT.
-
-
Dopo aver creato il gateway NAT, apri la console https://console.aws.amazon.com/vpc/
Amazon VPC e scegli Route tables nel menu a sinistra. -
Selezionare Create route table (Crea tabella di instradamento).
-
Associa questa tabella di routing al VPC che contiene il cluster MSK. Facoltativamente, inserisci un nome per la tabella delle rotte.
-
Selezionare Create route table (Crea tabella di instradamento).
-
Scegli la tabella delle rotte che hai appena creato.
-
Nella scheda Associazioni di sottorete, scegli Modifica associazioni di sottorete.
-
Associa 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. Dovrebbe essere il gateway NAT 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 AWS PrivateLink endpoint per una sorgente di eventi MSK
Puoi configurare gli AWS PrivateLink endpoint per interrogare i messaggi dal tuo cluster e richiamare la funzione utilizzando 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 Manager servizio. Ciò è necessario se il segreto richiesto per l'autenticazione del cluster è archiviato in Secrets Manager.
La configurazione PrivateLink degli endpoint è richiesta solo se la mappatura dell'origine degli eventi utilizza la modalità su richiesta. Se la mappatura dell'origine degli eventi utilizza la modalità provisioned, Lambda stabilisce le connessioni richieste per te.
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, consulta. Configurazione di un gateway NAT per una sorgente 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 passaggi seguenti guidano l'utente nella configurazione di un PrivateLink endpoint tramite la console. Ripeti questi passaggi se necessario per ciascun endpoint (Lambda, STS, Secrets Manager).
Per configurare gli PrivateLink endpoint VPC (console)
-
Apri la console Amazon VPC
e scegli 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 connettersi a Lambda, digita
lambdanella 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.lambdaSeleziona questo servizio. -
In Impostazioni di rete, seleziona il VPC che contiene il tuo cluster MSK.
-
In Subnet, seleziona l'AZ in cui si trova il tuo cluster MSK.
-
Per ogni AZ, in Subnet ID, scegli la sottorete privata che contiene il tuo cluster MSK.
-
-
In Gruppo di sicurezza, seleziona i gruppi di sicurezza associati al 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 il tuo endpoint Secrets Manager, puoi modificarne la politica in modo che consenta solo il ruolo di esecuzione della tua funzione di accedere al segreto.
Esempio Politica sugli 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 Lambda AWS STS e Lambda, è possibile limitare il principale chiamante al principale del servizio Lambda. Tuttavia, assicurati di utilizzarlo "Resource": "*" in queste politiche.
Esempio Politica sugli endpoint VPC — AWS STS endpoint
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }
Esempio Politica sugli endpoint VPC: endpoint Lambda
{ "Statement": [ { "Action": "lambda:InvokeFunction", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }