Configuración de permisos del rol de ejecución de Lambda - AWS Lambda

Configuración de permisos del rol de ejecución de Lambda

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.

Para cubrir todos los permisos necesarios, puede adjuntar la política administrada AWSLambdaMSKExecutionRole a su rol de ejecución. Como alternativa, puede agregar cada permiso manualmente.

Permisos básicos

El rol de ejecución de la función de Lambda debe tener los siguientes permisos necesarios para crear y almacenar registros en Registros de CloudWatch.

Permisos de acceso al clúster

Para que Lambda acceda al clúster de Amazon MSK en su nombre, la función de Lambda debe tener los siguientes permisos en su rol de ejecución:

Solo necesita agregar uno de los siguientes permisos: kafka:DescribeCluster o kafka:DescribeClusterV2. En el caso de los clústeres de Amazon MSK aprovisionados, cualquiera de los dos permisos funciona. Para los clústeres de Amazon MSK sin servidor, debe usar kafka:DescribeClusterV2.

nota

Lambda planea eliminar en el futuro el permiso kafka:DescribeCluster de la política administrada AWSLambdaMSKExecutionRole. Si utiliza esta política, migre cualquier aplicación que use kafka:DescribeCluster para que utilice kafka:DescribeClusterV2 en su lugar.

Permisos de VPC

Si su clúster de Amazon MSK está en una subred privada de su VPC, su función de Lambda debe tener permisos adicionales para acceder a sus recursos de Amazon VPC. Estos incluyen su VPC, subredes, grupos de seguridad e interfaces de red. El rol de ejecución de la función debe tener los siguientes permisos:

Permisos opcionales

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

  • 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 de AWS KMS administrada por el cliente, si desea cifrar sus criterios de filtro. Esto ayuda a mantener en secreto las reglas de filtrado de mensajes.

  • 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.

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.