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:

  • Acesse o segredo SCRAM, se estiver usando autenticação SASL/SCRAM. Com isso, a função pode usar um nome de usuário e uma senha para se conectar ao Kafka.

  • Descreva seu segredo do Secrets Manager, se estiver usando SASL/SCRAM ou autenticação mTLS. Com isso, a função pode recuperar as credenciais ou os certificados necessários para conexões seguras.

  • Acesse sua chave do AWS KMS gerenciada pelo cliente se quiser criptografar os critérios de filtro. Isso ajuda a manter regras de filtragem de mensagens em segredo.

  • Acesse os segredos do registro de esquemas se estiver usando um registro de esquema com autenticação:

    • Para o AWS Glue Schema Registry: sua função precisa das permissões glue:GetRegistry e glue:GetSchemaVersion. Elas permitem que a função pesquise e use as regras de formato de mensagens armazenadas no AWS Glue.

    • Para o Confluent Schema Registry com BASIC_AUTH ou CLIENT_CERTIFICATE_TLS_AUTH: a função precisa da permissão secretsmanager:GetSecretValue para o segredo que contém credenciais de autenticação. Com isso, a função pode recuperar o nome de usuário/senha ou os certificados necessários para acessar o Confluent Schema Registry.

    • Para certificados de CA privados: a função precisa da permissão secretsmanager:GetSecretValue para o segredo que contém o certificado. Com isso, a função pode verificar a identidade dos registros de esquema que usam certificados personalizados.

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:

  • Para destinos do Amazon SQS: sqs:SendMessage: permite enviar mensagens a uma fila do Amazon SQS

  • Para destinos do Amazon SNS: sns:Publish: permite publicar mensagens em um tópico do Amazon SNS

  • Para destinos de buckets do Amazon S3: s3:PutObject e s3:ListBucket: permite escrever e listar objetos em um bucket do Amazon S3

Para solução de problemas de erros comuns de autenticação e de autorização, consulte Solução de problemas de erros do mapeamento da origem do evento do Kafka.