Configurar as permissões do perfil de execução do Lambda - AWS Lambda

Configurar as permissões do perfil de execução do Lambda

Além de acessar o cluster do Amazon MSK, a função e o mapeamento da origem do evento precisam de permissões para realizar várias ações de API do Amazon MSK. Adicione essas permissões ao perfil de execução da função. Se os usuários precisarem de acesso, adicione as permissões necessárias à política de identidades para o usuário ou o perfil.

Para incluir todas as permissões necessárias, você pode anexar a política gerenciada AWSLambdaMSKExecutionRole ao seu perfil de execução. Outra opção é adicionar cada permissão manualmente.

Permissões básicas

O perfil de execução da função do Lambda deve ter as seguintes permissões exigidas para criar e armazenar logs no CloudWatch Logs.

Permissões de acesso a cluster

Para que o Lambda acesse o cluster do Amazon por você, sua função do Lambda deve ter as seguintes permissões no perfil de execução:

Você precisa adicionar apenas uma das duas: kafka:DescribeCluster ou kafka:DescribeClusterV2. Para clusters provisionados do Amazon MSK, qualquer uma das duas permissões funciona. Para clusters com tecnologia sem servidor do Amazon MSK, você deve usar kafka:DescribeClusterV2.

nota

O Lambda tem planos de remover a permissão kafka:DescribeCluster da política gerenciada AWSLambdaMSKExecutionRole. Se você usar essa política, migre todas as aplicações que usam kafka:DescribeCluster para usar kafka:DescribeClusterV2.

Permissões da VPC

Se o cluster do Amazon MSK estiver em uma sub-rede privada da VPC, a função do Lambda deverá ter permissões adicionais para acessar os recursos da Amazon VPC. Esses recursos incluem a VPC, as sub-redes, os grupos de segurança e as interfaces de rede. O perfil de execução da função precisa ter as seguintes permissões:

Permissões opcionais.

Sua função Lambda também pode precisar dessas permissões para:

Eles correspondem às seguintes permissões necessárias:

Além disso, se quiser enviar registros cuja invocação não teve sucesso para um destino em caso de falha, você precisará das seguintes permissões, dependendo do tipo de destino:

Solução de problemas de erros comuns de autenticação e autorização

Se alguma das permissões necessárias para consumir dados do cluster do Amazon MSK estiver ausente, o Lambda exibirá uma mensagem de erro no mapeamento da fonte de eventos em LastProcessingResult. Para obter mais informações sobre os métodos de autenticação compatíveis, consulte Configurar os métodos de autenticação de cluster.

O cluster falhou ao autorizar o Lambda

Para SASL/SCRAM ou mTLS, esse erro indica que o usuário fornecido não tem todas estas permissões da lista de controle de acesso (ACL) do Kafka necessárias:

  • Cluster DescribeConfigs

  • Descrever grupo

  • Ler grupo

  • Descrever tópico

  • Ler tópico

Para controle de acesso do IAM, a função de execução da função não tem uma ou mais permissões necessárias para acessar o grupo ou tópico. Revise a lista de permissões exigidas nesta página.

Ao criar ACLs do Kafka ou uma política do IAM com as permissões necessárias do cluster do Kafka, é necessário especificar o tópico e o grupo como recursos. O nome do tópico deve corresponder ao tópico no mapeamento da fonte de eventos. O nome do grupo deve corresponder ao UUID do mapeamento da fonte de eventos.

Depois de adicionar as permissões necessárias à função de execução, poderá levar vários minutos para que as alterações entrem em vigor.

SASL authentication failed (Falha na autenticação SASL)

Para SASL/SCRAM, esse erro indica que o nome de usuário e a senha fornecidos são inválidos.

Para controle de acesso do IAM, a função de execução não tem a permissão de kafka-cluster:Connect para o cluster do MSK. Adicione essa permissão à função e especifique o nome do recurso da Amazon (ARN) do cluster como recurso.

É possível que esse erro ocorra de modo intermitente. O cluster rejeitará conexões depois que o número de conexões de TCP exceder a cota de serviço do Amazon MSK. O Lambda recua e tenta novamente até que uma conexão seja bem-sucedida. Depois que o Lambda se conecta ao cluster e sonda por registros, o último resultado de processamento é alterado para OK.

Server failed to authenticate Lambda (Falha ao autenticar o Lambda no servidor)

Esse erro indica que não foi possível autenticar os agentes do Kafka do Amazon MSK com o Lambda. Esse erro pode ocorrer por estes motivos:

  • Você não forneceu um certificado de cliente para autenticação mTLS.

  • Você forneceu um certificado de cliente, mas os agentes não estão configurados para usar mTLS.

  • Um certificado de cliente não é confiável para os agentes.

Provided certificate or private key is invalid (O certificado ou a chave privada fornecida é inválida)

Esse erro indica que o consumidor do Amazon MSK não conseguiu usar o certificado ou a chave privada fornecida. Verifique se o certificado e a chave usam o formato PEM e que a criptografia de chave privada usa um algoritmo PBES1. Consulte Configurar o segredo de mTLS para obter mais informações.