View a markdown version of this page

Cifrado de los datos de ejecución duradera de AWS Lambda - AWS Lambda

Cifrado de los datos de ejecución duradera de AWS Lambda

Con las funciones duraderas de AWS Lambda, puede crear aplicaciones resilientes de varios pasos que se ejecutan durante un máximo de un año y utilizan puntos de comprobación para recuperar cada ejecución tras un error mediante la reproducción del trabajo completado.

Lambda siempre cifra en reposo los datos de ejecución duradera. También es posible configurar en la función una clave de AWS KMS propia administrada por el cliente para controlar la rotación, disponer de visibilidad para las auditorías o cumplir los requisitos de conformidad. Con una clave administrada por el cliente, solo las entidades principales autorizadas pueden leer los datos de ejecución.

Funcionamiento del cifrado

Una ejecución duradera de Lambda utiliza durante toda su duración la misma clave de KMS con la que se inició. El cambio o la eliminación de la clave de la función solo afecta a las ejecuciones que se inicien después del cambio. Consulte Cuando la clave administrada por el cliente no está disponible para obtener información sobre el comportamiento de una ejecución duradera cuando su clave no está disponible.

Las claves administradas por el cliente ocasionan cargos de AWS KMS estándar. Para obtener más información sobre precios, consulta precios de AWS Key Management Service.

Qué se cifra

Cuando se configura una clave administrada por el cliente en una función duradera, Lambda utiliza esa clave para cifrar en reposo los siguientes datos de la ejecución duradera:

  • La carga útil de entrada que se proporciona con cada solicitud Invoke.

  • Los datos de los puntos de comprobación que conserva la API CheckpointDurableExecution, incluidos los resultados y errores de los pasos, así como las entradas de invocación procesadas.

  • Los resultados y errores de la ejecución.

  • Los resultados y errores de devolución de llamada que se envían mediante SendDurableExecutionCallbackSuccess y SendDurableExecutionCallbackFailure.

Las claves de nivel de función y de ejecución duradera son independientes

El KMSKeyArn de nivel de función que cifra las variables de entorno, los paquetes de implementación .zip y las instantáneas de SnapStart es independiente de la KMSKeyArn deDurableConfig que cifra los datos de ejecución duradera. Configurar una no configura la otra. Puede usar la misma clave de KMS para ambas o claves de KMS diferentes.

Configuración del cifrado con una clave administrada por el cliente

La configuración del cifrado con una clave administrada por el cliente para una función duradera consta de tres pasos. Realice los siguientes pasos en el orden indicado.

Crear una clave administrada por el cliente

Las funciones duraderas admiten claves de KMS de cifrado simétrico en la misma región de AWS que la función. No se admiten claves entre regiones. Para crear una clave simétrica administrada por el cliente, siga los pasos de creación de claves de KMS de cifrado simétrico que se indican en la Guía para desarrolladores de AWS Key Management Service.

Permisos

Los permisos AWS KMS se conceden mediante la política de claves de KMS.

La configuración de una clave administrada por el cliente requiere permisos AWS KMS para la entidad principal que crea o actualiza la función. La invocación de una función duradera no requiere que el autor de la llamada tenga permisos AWS KMS. Lambda realiza el cifrado mediante su entidad principal de servicio.

Política de claves

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exclusivamente una política de clave. En una política de claves, Resource: "*" hace referencia únicamente a la clave de KMS a la que está asociada la política, no a todas las claves de KMS de la cuenta.

La política de claves de una función duradera concede a cada entidad principal únicamente las acciones AWS KMS que necesita, con un ámbito limitado por el servicio y el ARN de la función. En las siguientes secciones se describen las declaraciones, las condiciones y un ejemplo completo.

Declaraciones de política obligatorias

La política concede las siguientes capacidades:

  • Habilitación de permisos de usuario de IAM Concede al usuario raíz de la cuenta acceso incondicional para administrar la clave. Esta declaración no usa condiciones porque limitar su ámbito impediría rotar, actualizar o eliminar la clave.

  • Permitir que Lambda use esta clave para las funciones duraderas. Concede a la entidad principal de servicio de Lambda los permisos kms:GenerateDataKey y kms:Decrypt.

  • Permitir que el rol de ejecución de la función descifre los datos de ejecución duradera. Concede al rol de ejecución el permiso kms:Decrypt para leer el estado y hacer avanzar la ejecución.

  • Permitir que el autor de la función describa esta clave. Concede el permiso kms:DescribeKey para que Lambda pueda validar que la clave sea simétrica y esté habilitada durante CreateFunction o UpdateFunctionConfiguration.

  • Permitir que el autor de la función valide esta clave para una función específica. Concede los permisos kms:GenerateDataKey y kms:Decrypt para que Lambda pueda validar los permisos y el acceso a la clave con el contexto de cifrado de la función durante CreateFunction o UpdateFunctionConfiguration. Esto confirma que la política de claves acepta llamadas para esta función específica antes de crearla o actualizarla.

  • Permitir operadores de ejecución duradera. Concede a los operadores el permiso kms:Decrypt para las llamadas a GetDurableExecution y GetDurableExecutionHistory con IncludeExecutionData=true, GetDurableExecutionState y StopDurableExecution, así como para las API de devolución de llamada.

Como práctica recomendada, use entidades principales diferentes para el rol de ejecución, el autor de la función y el operador de ejecución duradera, de modo que cada identidad disponga únicamente de las capacidades que necesita.

Condiciones de política recomendadas

La política usa las siguientes condiciones para limitar el ámbito del acceso:

  • kms:ViaService restringe el uso de la clave a las solicitudes que se enrutan mediante Lambda. La aplicación de esta condición a las declaraciones del rol de ejecución, del autor de la función y del operador impide que usen la clave directamente mediante AWS KMS.

  • aws:SourceArn y aws:SourceAccount protegen contra el problema del delegado confundido entre servicios. Lambda reenvía estos valores cuando llama a AWS KMS con sus propias credenciales de servicio. Esta condición se aplica únicamente a la declaración de la entidad principal de servicio de Lambda. Las declaraciones del rol de ejecución, del autor de la función y del operador llaman a AWS KMS con las credenciales de sesión de acceso reenviado del autor de la llamada, que no incluyen estos encabezados.

  • kms:EncryptionContext:aws:lambda:FunctionArn limita el ámbito de la clave a una función específica. Lambda agrega este valor al contexto de cifrado en cada llamada a AWS KMS relacionada con los datos de ejecución duradera.

En el siguiente ejemplo se combinan las declaraciones y condiciones anteriores.

ejemplo Política de claves para funciones duraderas
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow Lambda to use this key for durable functions", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow the function execution role to decrypt durable execution data", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/myDurableFunctionRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow the function author to describe this key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/FunctionAuthor" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com" } } }, { "Sid": "Allow the function author to validate this key for a specific function", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/FunctionAuthor" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow durable execution operators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/DurableExecutionOperator" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } } ] }

Para obtener más información sobre las políticas de claves de AWS KMS, consulte Cómo cambiar una política de claves en la Guía para desarrolladores de AWS Key Management Service.

Configuración de una clave administrada por el cliente en una función duradera

La clave administrada por el cliente para los datos de ejecución duradera se configura mediante el campo KMSKeyArn del objeto DurableConfig. Establezca la clave al crear la función mediante CreateFunction. Para actualizarla en una función duradera existente, use UpdateFunctionConfiguration.

Lambda console
Configuración de una clave administrada por el cliente en una función duradera existente
  1. Abra la página de Funciones en la consola de Lambda.

  2. Seleccione una función duradera.

  3. Seleccione Configuración y, a continuación, Ejecución duradera en la barra de navegación izquierda.

  4. Elija Edit (Edición de).

  5. En Cifrado, seleccione Usar una clave administrada por el cliente y, a continuación, seleccione una clave de KMS de la lista.

  6. Seleccione Save.

AWS CLI

Configuración de una clave administrada por el cliente al crear una función

En el siguiente ejemplo de create-function, la opción --durable-config especifica el ARN de la clave administrada por el cliente, junto con el tiempo de espera de la ejecución duradera y el periodo de retención.

aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs24.x \ --handler index.handler \ --role arn:aws:iam::111122223333:role/myDurableFunctionRole \ --zip-file fileb://function.zip \ --durable-config '{"KMSKeyArn":"arn:aws:kms:us-east-1:111122223333:key/key-id","ExecutionTimeout":3600,"RetentionPeriodInDays":30}'

Configuración de una clave administrada por el cliente en una función duradera existente

Use el comando update-function-configuration. Incluya todos los campos de DurableConfig que desee conservar, ya que --durable-config sustituye todo el objeto.

aws lambda update-function-configuration \ --function-name myDurableFunction \ --durable-config '{"KMSKeyArn":"arn:aws:kms:us-east-1:111122223333:key/key-id","ExecutionTimeout":3600,"RetentionPeriodInDays":30}'

Eliminación de la clave administrada por el cliente de una función duradera

Omita KMSKeyArn de --durable-config. Las ejecuciones existentes siguen usando la clave administrada por el cliente con la que se iniciaron. Las ejecuciones nuevas usan en su lugar el cifrado predeterminado.

aws lambda update-function-configuration \ --function-name myDurableFunction \ --durable-config '{"ExecutionTimeout":3600,"RetentionPeriodInDays":30}'
AWS CloudFormation

En un recurso de AWS::Lambda::Function, establezca la propiedad KMSKeyArn de DurableConfig:

Resources: MyDurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: myDurableFunction Runtime: nodejs24.x Handler: index.handler Role: !GetAtt MyDurableFunctionRole.Arn Code: ZipFile: | // Your durable function code DurableConfig: KMSKeyArn: "arn:aws:kms:us-east-1:111122223333:key/key-id" ExecutionTimeout: 3600 RetentionPeriodInDays: 30
importante

Cada ejecución duradera utiliza la clave administrada por el cliente que estaba configurada en la función cuando se inició. El cambio o la eliminación de la clave solo afecta a las ejecuciones que se inicien después del cambio. Las ejecuciones en curso continúan usando la clave con la que se iniciaron hasta que se completen o produzcan un error.

Lectura de los datos de ejecución duradera

Dos API de lectura devuelven datos de ejecución duradera:

  • GetDurableExecution devuelve el estado actual de una ejecución individual, incluida su carga útil de entrada, los datos del punto de comprobación más reciente y la información sobre el resultado o el error.

  • GetDurableExecutionHistory devuelve la lista ordenada de eventos emitidos por la ejecución, que muestra las entradas y los resultados de los puntos de comprobación, las entradas y los resultados de las invocaciones encadenadas, y el resultado final.

Ambas API aceptan un parámetro de solicitud IncludeExecutionData. Cuando IncludeExecutionData es true, Lambda usa las credenciales del autor de la llamada para llamar a kms:Decrypt en la clave administrada por el cliente. A continuación, Lambda devuelve en la respuesta los datos de ejecución descifrados. La identidad del autor de la llamada debe tener el permiso kms:Decrypt en la clave administrada por el cliente.

Cuando IncludeExecutionData es false, Lambda no llama a AWS KMS ni descifra los datos de ejecución, y la respuesta establece ExecutionDataIncluded en false. La respuesta sigue incluyendo DurableConfig, que contiene el ARN de la clave administrada por el cliente que utilizó la ejecución. El valor predeterminado de IncludeExecutionData es false, por lo que los autores de llamadas que solo necesitan metadatos no requieren permisos AWS KMS.

Ejemplo: respuesta de GetDurableExecution con IncludeExecutionData=false

{ "DurableExecutionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction:execution:exec-abc123", "DurableExecutionName": "exec-abc123", "FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction", "StartTimestamp": 1733256000, "Status": "RUNNING", "ExecutionDataIncluded": false, "DurableConfig": { "ExecutionTimeout": 3600, "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/key-id", "RetentionPeriodInDays": 30 } }

Invocaciones encadenadas

Cuando una función duradera usa una invocación encadenada para llamar a otra función duradera, Lambda considera la ejecución secundaria como una ejecución duradera independiente: tiene su propio ID de ejecución, su propia secuencia de puntos de comprobación y su propia clave administrada por el cliente. La configuración de la clave administrada por el cliente de la ejecución principal no afecta a los datos de la ejecución secundaria, y la configuración de la clave administrada por el cliente de la ejecución secundaria no afecta a los datos de la ejecución principal.

Permisos

La entidad principal de servicio de Lambda debe tener los permisos kms:GenerateDataKey y kms:Decrypt en la clave administrada por el cliente de la función secundaria. Si las funciones principal y secundaria usan claves administradas por el cliente diferentes, debe conceder por separado a la entidad principal de servicio acceso a cada clave. El rol de ejecución de la función principal no necesita permisos en la clave administrada por el cliente de la función secundaria.

Identificación de la clave que cifró cada ejecución

Tanto GetDurableExecution como ListDurableExecutionsByFunction devuelven el ARN de la clave administrada por el cliente que cifró cada ejecución. Use estas API para confirmar qué clave estaba vigente cuando se inició una ejecución principal o secundaria.

Almacenamiento en caché de claves de datos

Para reducir el volumen de llamadas a AWS KMS y mejorar la disponibilidad durante las interrupciones del servicio, Lambda almacena en caché durante un máximo de 15 minutos una clave de datos generada a partir de la clave administrada por el cliente. Mientras la caché permanece activa, Lambda reutiliza la misma clave de datos en las operaciones de una ejecución y entre las ejecuciones iniciadas durante el intervalo de caché.

Coste

El costo de AWS KMS por ejecución se mantiene bajo, ya que Lambda llama a GenerateDataKey como máximo una vez por intervalo de caché, no una vez por cada punto de comprobación. Con tasas de solicitudes elevadas, el costo por ejecución disminuye aún más porque un mayor número de ejecuciones comparte cada clave de datos almacenada en caché. Se le cobran las llamadas AWS KMS que Lambda realiza efectivamente, no cada punto de comprobación ni cada lectura.

Estabilidad estática

Las claves de datos permanecen almacenadas en caché durante un máximo de 15 minutos. Los cambios en la clave surten efecto en la siguiente actualización de la caché. Durante interrupciones prolongadas del servicio, Lambda continúa respondiendo desde la caché, lo que permite que las ejecuciones en curso sigan en funcionamiento.

CloudTrail

Debido al almacenamiento en caché de las claves de datos, en CloudTrail se muestran menos eventos GenerateDataKey que ejecuciones o puntos de comprobación. Consulte Supervisión de las claves de KMS para funciones duraderas para ver ejemplos de eventos.

Cuando la clave administrada por el cliente no está disponible

Si la clave administrada por el cliente con la que se inició una ejecución está desactivada, está programada para su eliminación o se ha revocado el acceso mediante la política de claves, la ejecución no puede continuar. En el siguiente punto de comprobación, Lambda marca la ejecución como fallida con un error AWS KMS que no admite reintentos. Restablecer el acceso a la clave no reanuda automáticamente la ejecución. Debe iniciar una nueva ejecución.

Las API que leen o escriben cargas útiles también fallan cuando la clave no está disponible. Pueden devolver una de las siguientes excepciones:

  • KMSAccessDeniedException: Lambda no pudo descifrar los datos de ejecución duradera porque se denegó el acceso a la clave de KMS.

  • KMSDisabledException: Lambda no pudo descifrar los datos de ejecución duradera porque la clave de KMS está desactivada.

  • KMSInvalidStateException: Lambda no pudo descifrar los datos de ejecución duradera porque el estado de la clave de KMS no es válido para Decrypt.

  • KMSNotFoundException: Lambda no pudo descifrar los datos de ejecución duradera porque no se encontró la clave de KMS.

Al restablecer el acceso a la clave de KMS, estas API de lectura vuelven a funcionar para las ejecuciones que ya fallaron. Las ejecuciones fallidas permanecen en ese estado. Debe iniciar una nueva ejecución.

Para consultar los metadatos de una ejecución mientras la clave de KMS no está disponible, llame a GetDurableExecution con IncludeExecutionData=false. Esta operación devuelve el estado de la ejecución, las marcas de tiempo y DurableConfig, incluido el ARN de la clave de KMS, sin llamar a AWS KMS.

Como Lambda almacena en caché las claves de datos, la desactivación de una clave no surte efecto de inmediato. Para obtener más información, consulte Almacenamiento en caché de claves de datos.

importante

La eliminación de una clave de KMS de la que aún dependen ejecuciones en curso o retenidas destruye de forma permanente esas ejecuciones y su historial.

Supervisión de las claves de KMS para funciones duraderas

Cuando se usa una clave administrada por el cliente con una función duradera, se puede utilizar AWS CloudTrail para realizar un seguimiento de las llamadas a AWS KMS que Lambda efectúa en su nombre. Para obtener orientación general sobre la búsqueda de eventos AWS KMS, consulte Búsqueda de actividad de la API de AWS KMS.

Para confirmar que Lambda usa la clave según lo previsto, busque los siguientes campos en cada evento:

  • eventName: uno de GenerateDataKey, Decrypt o DescribeKey

  • eventSource: kms.amazonaws.com

  • userIdentity.invokedBy: lambda.amazonaws.com

  • requestParameters.encryptionContext.aws:lambda:FunctionArn: el ARN de la función duradera

Los siguientes ejemplos corresponden a eventos de CloudTrail generados por una llamada a CreateFunction o UpdateFunctionConfiguration que configura una clave administrada por el cliente en una función duradera. Lambda realiza tres llamadas a AWS KMS para validar la clave: una llamada real a DescribeKey y dos llamadas de prueba, una a GenerateDataKey y otra a Decrypt.

GenerateDataKey

Cuando se modifica o establece el valor de KMSKeyArn en DurableConfig, Lambda realiza una llamada de prueba a Tag3 con la clave administrada por el cliente para validar que la política de claves permita a Lambda derivar claves de datos para el contexto de cifrado de esta función. La llamada de prueba no realiza ninguna operación criptográfica, pero registra un evento completo de CloudTrail. El siguiente evento de ejemplo registra la operación GenerateDataKey de la llamada de prueba:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" }, "dryRun": true, "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0EXAMPLE" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt

Cuando se modifica o establece el valor de KMSKeyArn en DurableConfig, Lambda también realiza una llamada de prueba a Decrypt con la clave administrada por el cliente para validar que la política de claves permite a Lambda descifrar datos para el contexto de cifrado de esta función. La llamada de prueba usa IGNORE_CIPHERTEXT, por lo que no se requiere texto cifrado real. El siguiente evento de ejemplo registra la operación Decrypt de la llamada de prueba:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" }, "dryRun": true, "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "dryRunModifiers": ["IGNORE_CIPHERTEXT"], "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0EXAMPLE" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Cuando se modifica o establece el valor de KMSKeyArn en DurableConfig, Lambda llama a DescribeKey para confirmar que la clave es simétrica y está habilitada antes de aceptar el cambio. A diferencia de las comprobaciones de GenerateDataKey y Decrypt, esta es una llamada real, no una llamada de prueba. El siguiente evento de ejemplo registra la operación DescribeKey:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }