View a markdown version of this page

Configurazione del cluster e della rete Apache Kafka autogestiti per Lambda - 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à.

Configurazione del cluster e della rete Apache Kafka autogestiti per Lambda

Per connettere la funzione Lambda al cluster Apache Kafka autogestito, devi configurare correttamente il cluster e la rete in cui risiede. Questa pagina descrive come configurare il cluster e la rete. Se il cluster e la rete sono già configurati correttamente, consulta Configurazione di origini eventi Apache Kafka autogestito per Lambda per configurare la mappatura dell'origine degli eventi.

Self-managed Configurazione del cluster Apache Kafka

Puoi ospitare il tuo cluster Apache Kafka autogestito con provider cloud come Confluent Cloud o https://www.redpanda.com/ Redpanda oppure eseguirlo sulla tua infrastruttura. Assicurati che il cluster sia configurato correttamente e accessibile dalla rete a cui si connette la mappatura delle sorgenti degli eventi Lambda.

Configurare la sicurezza della rete

Per concedere a Lambda l'accesso completo ad Apache Kafka autogestito tramite lo strumento di mappatura dell'origine degli eventi, il cluster deve utilizzare un endpoint pubblico (indirizzo IP pubblico) oppure devi fornire l'accesso all'Amazon VPC in cui hai creato il cluster.

Quando usi Apache Kafka autogestito con Lambda, crea endpoint VPC AWS PrivateLink che forniscono alla funzione l'accesso alle risorse del tuo Amazon VPC.

Nota

AWS PrivateLink Gli endpoint VPC sono necessari per le funzioni con mappature delle sorgenti di eventi che utilizzano la modalità predefinita (su richiesta) per i poller di eventi. Se la mappatura dell'origine degli eventi utilizza la modalità provisioned, non è necessario configurare gli endpoint VPC. AWS PrivateLink

Crea un endpoint per fornire l'accesso alle seguenti risorse:

  • Lambda: crea un endpoint per il principale del servizio Lambda.

  • AWS STS — Crea un endpoint per consentire AWS STS a un responsabile del servizio di assumere un ruolo per tuo conto.

  • Secrets Manager: se il tuo cluster utilizza Secrets Manager per archiviare le credenziali, crea un endpoint per Secrets Manager.

In alternativa, configura un gateway NAT su ogni sottorete pubblica in Amazon VPC. Per ulteriori informazioni, consulta Abilita l'accesso a Internet per le funzioni VPC-connected Lambda.

Quando crei uno strumento di mappatura dell'origine degli eventi per Apache Kafka autogestito, Lambda verifica se le interfacce di rete elastiche (ENI) sono già presenti per le sottoreti e i gruppi di sicurezza configurati per il tuo Amazon VPC. Se Lambda trova ENI esistenti, prova a riutilizzarle. Altrimenti, Lambda crea nuove ENI per connettersi all'origine dell'evento e richiamare la tua funzione.

Nota

Le funzioni Lambda vengono sempre eseguite all'interno di VPC di proprietà del servizio Lambda. La configurazione VPC della funzione non influisce sullo strumento di mappatura dell'origine degli eventi. Solo la configurazione di rete dell'origine dell'evento determina il modo in cui Lambda si connette all'origine dell'evento.

Configura i gruppi di sicurezza per l'Amazon VPC contenente il tuo cluster. Per impostazione predefinita, Apache Kafka autogestito utilizza le seguenti porte: 9092.

  • Regole in ingresso: consenti tutto il traffico sulla porta del broker predefinita per il gruppo di sicurezza associato all'origine eventi. In alternativa, puoi utilizzare una regola autoreferenziale del gruppo di sicurezza per consentire l'accesso da istanze all'interno dello stesso gruppo di sicurezza.

  • Regole in uscita: consenti tutto il traffico sulla porta 443 per destinazioni esterne se la tua funzione deve comunicare con i servizi. AWS In alternativa, puoi anche 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 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 443 dal gruppo di sicurezza del cluster.

Se il cluster utilizza l'autenticazione, puoi anche limitare la policy degli endpoint per l'endpoint Secrets Manager. Per chiamare l'API Secrets Manager, Lambda utilizza il ruolo della funzione, non il principale del servizio Lambda.

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" } ] }

Quando utilizzi gli endpoint Amazon VPC, AWS indirizza le tue chiamate API per richiamare la tua funzione utilizzando l'Elastic Network Interface (ENI) dell'endpoint. Il principale del servizio Lambda deve chiamare lambda:InvokeFunction su tutti i ruoli e le funzioni che utilizzano tali ENI.

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. Per garantire che lo strumento di mappatura dell'origine degli eventi sia in grado di invocare la funzione Lambda, la policy degli endpoint VPC deve consentire al principale del servizio Lambda di chiamare sts:AssumeRole e lambda:InvokeFunction. Limitare le policy degli endpoint VPC per consentire solo le chiamate API provenienti dall'organizzazione impedisce il corretto funzionamento dello strumento di mappatura dell'origine degli eventi, pertanto "Resource": "*" è richiesto in queste policy.

Il seguente esempio di policy degli endpoint VPC mostra come concedere l'accesso richiesto al principale del servizio Lambda per gli endpoint AWS STS e Lambda.

Esempio Politica VPC Endpoint — AWS STS endpoint
{ "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": "*" } ] }