Criar mapeamentos da origem do evento entre contas no Lambda
É possível usar a conectividade privada com várias VPCs para conectar uma função do Lambda a um cluster DO MSK provisionado em outra Conta da AWS. A conectividade com várias VPCs usa AWS PrivateLink, que mantém todo o tráfego na rede da AWS.
nota
Não é possível criar mapeamentos da origem do evento entre contas para clusters do MSK sem servidor.
Para criar um mapeamento da origem de eventos entre contas, primeiro você precisa configurar a conectividade com várias VPCs para o cluster do MSK. Ao criar o mapeamento da origem de eventos, use o ARN da conexão VPC gerenciada, em vez do ARN do cluster, conforme mostrado nos exemplos a seguir. A operação CreateEventSourceMapping também difere dependendo do tipo de autenticação usado pelo cluster do MSK.
exemplo: criar um mapeamento da origem de eventos entre contas para o cluster que usa autenticação do IAM
Quando o cluster usa a autenticação baseada em perfil do IAM, você não precisa de um objeto SourceAccessConfiguration. Exemplo:
aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7\ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function
exemplo: criar um mapeamento da origem de eventos entre contas para o cluster que usa autenticação SASL/SCRAM
Se o cluster usar autenticação SASL/SCRAM, você precisa incluir um objeto SourceAccessConfiguration que especifique SASL_SCRAM_512_AUTH e um ARN secreto do Secrets Manager.
Há duas maneiras de usar segredos para mapeamentos da origem do evento entre contas do Amazon MSK com autenticação SASL/SCRAM:
-
Crie um segredo na conta da função do Lambda e sincronize-o com o segredo do cluster. Crie uma rotação para manter os dois segredos sincronizados. Essa opção permite controlar o segredo pela conta da função.
-
Use o segredo associado ao cluster do MSK. Esse segredo deve permitir o acesso entre contas à conta da função do Lambda. Para obter mais informações, consulte Permissões para segredos do AWS Secrets Manager para usuários em uma conta diferente.
aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7\ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function \ --source-access-configurations'[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'
exemplo: criar um mapeamento da origem de eventos entre contas para o cluster que usa autenticação mTLS
Se o cluster usar autenticação mTLS, você precisa incluir um objeto SourceAccessConfiguration que especifique CLIENT_CERTIFICATE_TLS_AUTH e um ARN secreto do Secrets Manager. O segredo pode ser armazenado na conta do cluster ou na conta da função do Lambda.
aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7\ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function \ --source-access-configurations'[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'