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 AWS Lambda funzione al cluster Amazon MSK, devi configurare correttamente il cluster e l'Amazon Virtual Private Cloud (VPC) in cui si trova. In questa pagina viene descritto come configurare cluster e 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. Il mapping dell'origine eventi ha due processi principali. Innanzitutto, analizza la presenza di nuovi messaggi nel cluster MSK. Quindi richiama la funzione Lambda con questi messaggi. Poiché queste tre risorse si trovano in VPC diversi, sia le operazioni di poll che 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 utilizzi la modalità previsionata o la modalità su richiesta, 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 iperpiano ENI 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. Quindi, non hai bisogno di componenti di rete aggiuntivi 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 ServiceGestione dei segreti AWS 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 nella 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 PrivateLinkgli 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 uno strumento di origine 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 scalazione dello strumento di mappatura dell'origine 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 PrivateLinkendpoint (nella sottorete pubblica del tuo VPC) per abilitare l'accesso a Lambda e, facoltativamenteAWS STS, a Secrets Manager. |
|
Sottorete privata |
Modalità assegnata |
Nessuno |
|
Sottorete pubblica |
Modalità assegnata |
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 ingresso: 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 SASL/SCRAM e9096per TLS.9094In 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
443per 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 Amazon VPC deve consentire il traffico in entrata sulla porta dal gruppo di sicurezza del cluster.
Configurazione di un gateway NAT per uno strumento di origine 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.
Le risorse in una sottorete privata richiedono un gateway NAT per 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 ti guidano nella configurazione di un gateway NAT utilizzando la console. Ripetere questi passaggi secondo necessità 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 trovarsi in una sottorete pubblica. Crea gateway NAT con connettività pubblica.
-
Se il cluster MSK viene replicato su più AZ, 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 AZ, 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).
-
Associa la tabella di routing con il VPC contenente il cluster MSK. Facoltativamente, inserisci un nome per la tabella di routing.
-
Selezionare Create route table (Crea tabella di instradamento).
-
Scegliere il ruolo appena creato.
-
Nella scheda Associazioni sottorete scegli Modifica associazioni sottorete.
-
Associa la tabella di routing alla sottorete privata contenente il cluster MSK.
-
-
Selezionare Modifica route.
-
Scegli Aggiungi route.
-
Per Destinazione scegliere
0.0.0.0/0. -
Per Target, scegli NAT gateway.
-
Nella casella di ricerca scegliere il gateway NAT creato nella fase 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 Gestione dei segreti AWSservizio. Questo è necessario se il segreto richiesto per l'autenticazione del cluster è archiviato in Secrets Manager.
La configurazione degli endpoint PrivateLink è necessaria solo se la mappatura delle sorgenti degli eventi utilizza la modalità su richiesta. Se la mappatura delle sorgenti degli eventi utilizza la modalità provisioned, Lambda stabilisce automaticamente le connessioni necessarie.
Gli endpoint PrivateLink consentono un accesso sicuro e privato ai servizi su. 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 uno strumento di origine 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 PrivateLink utilizzando la console. Ripetere questi passaggi se necessario per ogni endpoint (Lambda, STS, Secrets Manager).
Per configurare gli endpoint VPC PrivateLink (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,
lambdadigita 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. Selezionare Servizi AWS. -
In Impostazioni di rete, selezionare il VPC che contiene il cluster MSK.
-
In Subnet, seleziona le AZ in cui si trova il cluster MSK.
-
Per ogni AZ, in Subnet ID, scegli la sottorete privata che contiene il cluster MSK.
-
-
Per Gruppo di sicurezza, seleziona il gruppo di sicurezza associato al cluster database .
-
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 Policy dell'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 Policy dell'endpoint VPC: endpoint AWS STS
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }
Esempio Policy dell'endpoint VPC: endpoint Lambda
{ "Statement": [ { "Action": "lambda:InvokeFunction", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }