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:
-
kafka:DescribeVpcConnection: solo se requiere para las asignaciones de orígenes de eventos entre cuentas.
-
kafka:ListVpcConnections: no es obligatorio en el rol de ejecución, pero sí es obligatorio para una entidad principal de IAM que esté creando una asignación de orígenes de eventos entre cuentas.
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: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.
-
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
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.