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:

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:

Solución de problemas de errores comunes de autenticación y autorización

Si falta alguno de los permisos necesarios para consumir datos del clúster de Amazon MSK, Lambda muestra uno de los siguientes mensajes de error en la asignación del origen de eventos en LastProcessingResult. Para obtener más información acerca de cada método de autenticación admitido, consulte Configuración de métodos de autenticación de clústeres.

Error de autorización del clúster a Lambda

Para SASL/SCRAM o mTLS, este error indica que el usuario proporcionado no tiene todos los permisos de lista de control de acceso (ACL) de Kafka necesarios que se indican a continuación:

  • Clúster DescribeConfigs

  • Descripción del grupo

  • Grupo de lectura

  • Descripción del tema

  • Tema de lectura

Para el control de acceso de IAM, faltan uno o más de los permisos necesarios en el rol de ejecución de la función para acceder al grupo o al tema. Consulte la lista de permisos necesarios en esta página.

Cuando crea las ACL de Kafka o una política de IAM con los permisos de clúster de Kafka necesarios, debe especificar el tema y el grupo como recursos. El nombre del tema debe coincidir con el tema en la asignación de origen de eventos. El nombre del grupo debe coincidir con el UUID de la asignación de origen de eventos.

Después de agregar los permisos necesarios al rol de ejecución, pueden pasar varios minutos hasta que los cambios surtan efecto.

Error de autenticación de SASL

Para SASL/SCRAM, este error indica que el nombre de usuario y la contraseña proporcionados no son válidos.

Para el control de acceso de IAM, falta el permiso kafka-cluster:Connect para el clúster de MSK en el rol de ejecución. Agregue este permiso al rol y especifique el nombre de recurso de Amazon (ARN) del clúster como recurso.

Es posible que vea que este error se produce de forma intermitente. El clúster rechaza las conexiones después de que el número de conexiones TCP supere la cuota de servicio de Amazon MSK. Lambda retrocede y vuelve a intentarlo hasta que una conexión tenga éxito. Después de que Lambda se conecte al clúster y sondee los registros, el último resultado de procesamiento cambia a OK.

El servidor no pudo autenticar Lambda

Este error indica que los agentes de Kafka de Amazon MSK no se han podido autenticar con Lambda. Este error puede producirse por cualquiera de las razones siguientes:

  • No proporcionó ningún certificado de cliente para la autenticación de mTLS.

  • Proporcionó un certificado de cliente, pero los agentes no están configurados para utilizar mTLS.

  • Los agentes no confían en el certificado de cliente.

La clave privada o el certificado proporcionados no son válidos

Este error indica que el consumidor de Amazon MSK no ha podido utilizar el certificado ni la clave privada proporcionados. Asegúrese de que el formato del certificado y la clave sea PEM y de que el cifrado de clave privada utilice un algoritmo PBES1. Para obtener más información, consulte Configuración del secreto de mTLS.