Seguridad y permisos para las funciones duraderas de Lambda - AWS Lambda

Seguridad y permisos para las funciones duraderas de Lambda

Las funciones duraderas de Lambda requieren permisos de IAM específicos para gestionar las operaciones de los puntos de control. Siga el principio de privilegio mínimo; para ello, otorgue solo los permisos que necesita su función.

Permisos de rol de ejecución

El rol de ejecución de la función duradera requiere permisos para crear puntos de control y recuperar el estado de ejecución. La siguiente política muestra los permisos mínimos necesarios:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name:*" } ] }

Cuando crea una función duradera mediante la consola, Lambda añade automáticamente estos permisos al rol de ejecución. Si crea la función con la AWS CLI o AWS CloudFormation, añada estos permisos a su rol de ejecución.

Principio de privilegio mínimo

Delimite el elemento de Resource a los ARN de funciones específicas en lugar de utilizar caracteres comodín. Esto limita el rol de ejecución a las operaciones de puntos de control únicamente para las funciones que las necesitan.

Ejemplo: permisos delimitados para varias funciones

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:orderProcessor:*", "arn:aws:lambda:us-east-1:123456789012:function:paymentHandler:*" ] } ] }

Como alternativa, puede utilizar la política administrada de AWS AWSLambdaBasicDurableExecutionRolePolicy, que incluye los permisos de ejecución duradera necesarios junto con los permisos básicos de ejecución de Lambda para Registros de Amazon CloudWatch.

Cifrado de estado

Las funciones duraderas de Lambda habilitan automáticamente el cifrado en reposo mediante claves propiedad de AWS sin costo alguno. La ejecución de cada función mantiene un estado aislado al que no pueden acceder las demás ejecuciones. No se admiten las claves administradas por el cliente (CMK).

Los datos de los puntos de control incluyen los siguientes:

  • Resultados escalonados y valores devueltos

  • Progreso y cronograma de la ejecución

  • Información del estado de espera

Todos los datos se cifran en tránsito mediante TLS cuando Lambda lee o escribe datos de puntos de control.

Cifrado personalizado con serializadores y deserializadores personalizados

Para los requisitos de seguridad críticos, puede implementar su propio mecanismo de cifrado y descifrado mediante serializadores y deserializadores (SerDer) personalizados mediante un SDK duradero. Este enfoque le proporciona un control total de las claves y los algoritmos de cifrado utilizados para proteger los datos de los puntos de control.

importante

Cuando utiliza el cifrado personalizado, pierde la visibilidad de los resultados de la operación en la consola de Lambda y en las respuestas de la API. Los datos de los puntos de control aparecen cifrados en el historial de ejecución y no se pueden inspeccionar sin descifrarlos.

El rol de ejecución de la función necesita permisos de kms:Encrypt y kms:Decrypt para la clave de AWS KMS utilizada en la implementación personalizada de SerDer.

Registros de CloudTrail

Lambda registra las operaciones de los puntos de control como eventos de datos en AWS CloudTrail. Puede usar CloudTrail para auditar cuándo se crean los puntos de control, realizar un seguimiento de los cambios en el estado de ejecución y supervisar el acceso a los datos de la ejecución duradera.

Las operaciones de puntos de control aparecen en los registros de CloudTrail con los siguientes nombres de eventos:

  • CheckpointDurableExecution: se registra cuando se completa un paso y se crea un punto de control.

  • GetDurableExecutionState: se registra cuando Lambda recupera el estado de ejecución durante la reproducción.

Para habilitar el registro de eventos de datos para funciones duraderas, configure un registro de CloudTrail para registrar los eventos de datos de Lambda. Para obtener más información, consulte Registro de eventos de datos en la Guía del usuario de CloudTrail.

Ejemplo: entrada de registro de CloudTrail para la operación de puntos de control

{ "eventVersion": "1.08", "eventTime": "2024-11-16T10:30:45Z", "eventName": "CheckpointDurableExecution", "eventSource": "lambda.amazonaws.com", "requestParameters": { "functionName": "myDurableFunction", "executionId": "exec-abc123", "stepId": "step-1" }, "responseElements": null, "eventType": "AwsApiCall" }

Consideraciones sobre el acceso entre cuentas

Si invoca funciones duraderas en todas las cuentas de AWS, la cuenta que realiza la llamada necesita permiso de lambda:InvokeFunction, pero las operaciones de puntos de control siempre utilizan el rol de ejecución en la cuenta de la función. La cuenta que realiza la llamada no puede acceder directamente a los datos de los puntos de control ni al estado de ejecución.

Este aislamiento garantiza que los datos de los puntos de control permanezcan seguros en la cuenta de la función, incluso cuando se invoquen desde cuentas externas.

Características heredadas de seguridad de Lambda

Las funciones duraderas heredan todas las características de seguridad, gobernanza y cumplimiento de Lambda, incluidas la conectividad de la VPC, el cifrado de variables de entorno, las colas de mensajes fallidos, la concurrencia reservada, las URL de función, la firma de código y las certificaciones de conformidad (SOC, PCI DSS, HIPAA, etc.).

Para obtener información detallada sobre las características de seguridad de Lambda, consulte Seguridad en AWS Lambda en la Guía para desarrolladores de Lambda. Las únicas consideraciones de seguridad adicionales para las funciones duraderas son los permisos de los puntos de control documentados en esta guía.