Cómo configurar permisos de Lambda para las asignaciones de orígenes de eventos - AWS Lambda

Cómo configurar permisos de Lambda para las asignaciones de orígenes de eventos

Para acceder al clúster de Amazon MSK, la función y la asignación de orígenes de eventos necesitan permisos para llevar a cabo varias acciones de la API de Amazon MSK. Todos estos permisos se agregan al rol de ejecución de la función. Si los usuarios necesitan acceso, agregue los permisos necesarios a la política de identidad para el usuario o rol.

La política administrada de AWSLambdaMSKExecutionRole contiene los permisos mínimos necesarios para las asignaciones de orígenes de eventos de Lambda en Amazon MSK. Para simplificar el proceso de permisos, pruebe lo siguiente:

Permisos necesarios

El rol de ejecución de la función de Lambda debe tener los siguientes permisos necesarios para las asignaciones de orígenes de eventos de Amazon MSK. Estos permisos están incluidos en la política administrada de AWSLambdaMSKExecutionRole.

Permisos de Registros de CloudWatch

Los siguientes permisos autorizan a Lambda par que cree y almacene registros en Registros de Amazon CloudWatch.

Permisos de clústeres de MSK

Los siguientes permisos permiten que Lambda acceda al clúster de Amazon MSK en su nombre:

Recomendamos utilizar kafka:DescribeClusterV2 en lugar de kafka:DescribeCluster. El permiso v2 funciona con clústeres de Amazon MSK aprovisionados y sin servidor. Solo necesita uno de estos permisos en la política.

Permisos de VPC

Los siguientes permisos permiten que Lambda cree y administre interfaces de red al conectarse a su clúster de Amazon MSK:

Permisos opcionales

Es posible que la función de Lambda también necesite permisos para:

  • Acceda a los clústeres de Amazon MSK entre cuentas. Para las asignaciones de orígenes de eventos entre cuentas, necesita kafka:DescribeVpcConnection en el rol de ejecución. Una entidad principal de IAM que cree una asignación de orígenes de eventos entre cuentas necesita kafka:ListVpcConnections.

  • Acceda a su secreto de SCRAM, si usa la autenticación SASL/SCRAM. Esto permite que su función utilice un nombre de usuario y una contraseña para conectarse a Kafka.

  • Describa su secreto de Secrets Manager, si usa la autenticación SASL/SCRAM o mTLS. Esto permite que su función recupere las credenciales o los certificados necesarios para las conexiones seguras.

  • Acceda a su clave administrada de cliente de AWS KMS si su secreto de AWS Secrets Manager está cifrado con una clave administrada de cliente de AWS KMS.

  • Acceda a los secretos del registro de esquemas si utiliza un registro de esquemas con autenticación:

    • Para el registro de esquemas de AWS Glue: su función necesita permisos de glue:GetRegistry y glue:GetSchemaVersion. Esto le permite a la función buscar y utilizar las reglas de formato de mensajes almacenadas en AWS Glue.

    • Para el registro de esquemas de Confluent con BASIC_AUTH o CLIENT_CERTIFICATE_TLS_AUTH: su función necesita permiso de secretsmanager:GetSecretValue para el secreto que contiene las credenciales de autenticación. Esto le permite a la función recuperar el nombre de usuario y la contraseña o los certificados necesarios para acceder al registro de esquemas de Confluent.

    • Para los certificados de CA privados: su función necesita el permiso secretsmanager:GetSecretValue para el secreto que contiene el certificado. Esto permite a la función comprobar la identidad de los registros de esquemas que utilizan certificados personalizados.

  • Acceda a los grupos de consumidores de clúster de Kafka y sondee los mensajes del tema si utiliza la autenticación de IAM para la asignación de orígenes de eventos.

Estos corresponden a los siguientes permisos necesarios:

Además, si desea enviar registros de invocaciones fallidas a un destino en caso de error, necesitará los siguientes permisos según el tipo de destino:

  • Para destinos de Amazon SQS: sqs:SendMessage: permite enviar mensajes a una cola de Amazon SQS

  • Para destinos de Amazon SNS: sns:Publish: permite publicar mensajes en un tema de Amazon SNS

  • Para destinos de bucket de Amazon S3: s3:PutObject y s3:ListBucket: permite escribir y enumerar objetos en un bucket de Amazon S3

Para la solución de problemas de errores de autenticación y autorización, consulte Solución de errores de asignación de orígenes de eventos de Kafka.