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:
-
Asocie la política administrada AWSLambdaMSKExecutionRole al rol de ejecución.
-
Deje que la consola de Lambda genere los permisos por usted. Cuando crea una asignación de orígenes de eventos de Amazon MSK en la consola, Lambda evalúa su rol de ejecución y le avisa si falta algún permiso. Elija Generar permisos para actualizar automáticamente su rol de ejecución. Esto no funciona si ha creado o modificado manualmente las políticas de los roles de ejecución, o si las políticas están asociadas a varios roles. Tenga en cuenta que es posible que su rol de ejecución siga necesitando permisos adicionales cuando utilice funciones avanzadas, como destino en caso de error o registro de esquemas de AWS Glue.
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:GetRegistryyglue: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_AUTHoCLIENT_CERTIFICATE_TLS_AUTH: su función necesita permiso desecretsmanager:GetSecretValuepara 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:
-
kafka:ListScramSecrets: permite enumerar los secretos de SCRAM para la autenticación de Kafka
-
secretsmanager:GetSecretValue: permite la recuperación de secretos de Secrets Manager
-
kms:Decrypt: permite descifrar datos cifrados mediante AWS KMS
-
glue:GetRegistry: permite el acceso al registro de esquemas AWS Glue
-
glue:GetSchemaVersion: permite recuperar versiones de esquemas específicas del registro de esquemas AWS Glue
-
kafka-cluster:Connect: otorga permiso para conectarse al clúster y autenticarse en este.
-
kafka-cluster:AlterGroup: otorga permiso para unirse a grupos en un clúster, equivalente a la ACL READ GROUP de Apache Kafka.
-
kafka-cluster:DescribeGroup: otorga permiso para describir grupos en un clúster, equivalente a la ACL DESCRIBE GROUP de Apache Kafka.
-
kafka-cluster:DescribeTopic: otorga permiso para describir temas en un clúster, equivalente a la ACL DESCRIBE TOPIC de Apache Kafka.
-
kafka-cluster:ReadData: otorga permiso para leer datos de temas de un clúster, equivalente a la ACL READ TOPIC de Apache Kafka.
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.