View a markdown version of this page

Chiffrement AWS Lambda données d'exécution durables - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chiffrement AWS Lambda données d'exécution durables

Grâce à des fonctions AWS Lambda durables, vous pouvez créer des applications résilientes en plusieurs étapes qui s'exécutent jusqu'à un an, en utilisant des points de contrôle pour récupérer chaque exécution après des échecs en rejouant le travail terminé.

Lambda chiffre toujours les données d'exécution durables au repos. Vous pouvez également configurer votre propre clé gérée par le AWS KMS client sur la fonction pour le contrôle de la rotation, la visibilité des audits ou la conformité. Avec une clé gérée par le client, seuls les mandants que vous autorisez peuvent lire les données d'exécution.

Comment fonctionne le chiffrement

Une exécution Lambda durable utilise la même clé KMS avec laquelle elle a commencé pendant toute sa durée de vie. La modification ou la suppression de la touche de la fonction n'affecte que les exécutions qui démarrent après la modification. Découvrez Lorsque la clé gérée par le client n'est pas disponible comment se comporte une exécution durable lorsque sa clé n'est pas disponible.

Les clés gérées par le client entraînent des AWS KMS frais standard. Pour plus d’informations sur la tarification, consultez Tarification AWS Key Management Service.

Qu'est-ce qui est crypté

Lorsque vous configurez une clé gérée par le client sur une fonction durable, Lambda utilise cette clé pour chiffrer les données d'exécution durables suivantes au repos :

  • La charge utile d'entrée que vous transmettez à chaque Invoke demande.

  • Les données des points de contrôle sont conservées par l'CheckpointDurableExecutionAPI, notamment les résultats des étapes, les erreurs d'étape et les entrées d'appel en chaîne.

  • Résultats et erreurs d'exécution.

  • Résultats des rappels et erreurs que vous soumettez via SendDurableExecutionCallbackSuccess etSendDurableExecutionCallbackFailure.

Function-level et les clés d'exécution durables sont indépendantes

Le niveau de fonction KMSKeyArn qui chiffre les variables d'environnement, les packages de déploiement .zip et les SnapStart instantanés est distinct de DurableConfig celui qui chiffre les données d'KMSKeyArnexécution durables. Le réglage de l'un ne définit pas l'autre. Vous pouvez utiliser la même clé KMS pour les deux, ou utiliser des clés KMS différentes.

Configurer le chiffrement des clés gérées par le client

La configuration du chiffrement par clé gérée par le client pour une fonction durable est un processus en trois étapes. Effectuez les étapes suivantes dans l'ordre.

Création d’une clé gérée par le client

Les fonctions durables prennent en charge les clés KMS de chiffrement symétrique dans la même AWS région que la fonction. Cross-Region les clés ne sont pas prises en charge. Pour créer une clé symétrique gérée par le client, suivez les étapes de création de clés KMS à chiffrement symétrique décrites dans le Guide du AWS Key Management Service développeur.

Permissions

Vous accordez AWS KMS des autorisations par le biais de la politique de clé de la clé KMS.

La configuration d'une clé gérée par le client nécessite AWS KMS des autorisations sur le principal qui crée ou met à jour la fonction. L'appel d'une fonction durable ne nécessite aucune AWS KMS autorisation de la part de l'appelant ; Lambda effectue le chiffrement avec son principal de service.

Stratégie de clé

Les stratégies de clé contrôlent l’accès à votre clé gérée par le client. Chaque clé gérée par le client doit avoir exactement une politique clé. Dans une politique de clé, Resource: "*" fait référence uniquement à la clé KMS à laquelle la politique est associée, et non à toutes les clés KMS de votre compte.

La politique clé d'une fonction durable n'accorde à chaque responsable que les AWS KMS actions dont il a besoin, en fonction de l'ARN du service et de la fonction. Les sections suivantes décrivent les déclarations, les conditions et fournissent un exemple complet.

Déclarations de politique requises

La politique accorde les fonctionnalités suivantes :

  • Activez les autorisations utilisateur IAM. Accorde à l'utilisateur root du compte un accès inconditionnel à la gestion de la clé. Cette instruction n'impose aucune condition, car la délimitation de la portée vous empêcherait de faire pivoter, de mettre à jour ou de supprimer la clé.

  • Autorisez Lambda à utiliser cette touche pour des fonctions durables. Accorde au principal du service Lambda kms:GenerateDataKey et. kms:Decrypt

  • Autorisez le rôle d'exécution de la fonction à déchiffrer les données d'exécution durables. Attribue le rôle d'exécution kms:Decrypt pour lire l'état et faire progresser l'exécution.

  • Autorisez l'auteur de la fonction à décrire cette clé. Accordes kms:DescribeKey afin que Lambda puisse valider que la clé est symétrique et activée pendant CreateFunction ou. UpdateFunctionConfiguration

  • Autorisez l'auteur de la fonction à valider cette clé pour une fonction spécifique. Accordes kms:GenerateDataKey kms:Decrypt et permet à Lambda de valider les autorisations clés et l'accès avec le contexte de chiffrement de la fonction pendant CreateFunction ouUpdateFunctionConfiguration. Cela confirme que la politique clé accepte les appels pour cette fonction spécifique avant que celle-ci ne soit créée ou mise à jour.

  • Permettre des opérateurs d'exécution durables. Accorde des opérateurs kms:Decrypt pour les appels vers GetDurableExecutionIncludeExecutionData=true, GetDurableExecutionHistory avecGetDurableExecutionState,StopDurableExecution, et les API de rappel.

Il est recommandé d'utiliser des principes distincts pour le rôle d'exécution, l'auteur de la fonction et l'opérateur d'exécution durable afin que chaque identité ne dispose que des fonctionnalités dont elle a besoin.

Conditions politiques recommandées

La politique utilise les conditions suivantes pour limiter l'accès :

  • kms : ViaService limite l'utilisation de la clé aux requêtes acheminées via Lambda. L'application de cette règle aux instructions relatives au rôle d'exécution, à l'auteur de la fonction et à l'opérateur les empêche d'utiliser directement la touche AWS KMS.

  • aws : SourceArn et aws : SourceAccount protection contre le problème des sous-ministres confus entre les services. Lambda transmet ces valeurs lorsqu'il appelle à AWS KMS l'aide de ses propres informations d'identification de service. Cette condition s'applique uniquement à l'instruction principale du service Lambda. Les instructions relatives au rôle d'exécution, à l'auteur de la fonction et AWS KMS à l'opérateur utilisent les informations d'identification de session d'accès direct de l'appelant, qui ne contiennent pas ces en-têtes.

  • kms : EncryptionContext:aws:lambda:FunctionArn étend la clé à une fonction spécifique. Lambda l'ajoute au contexte de chiffrement à chaque AWS KMS appel pour des données d'exécution durables.

L'exemple suivant combine les déclarations et les conditions ci-dessus.

Exemple Politique clé pour des fonctions durables
{ "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" } } } ] }

Pour plus d'informations sur les politiques AWS KMS clés, consultez Comment modifier une stratégie clé dans le Guide du AWS Key Management Service développeur.

Configurer une clé gérée par le client sur une fonction durable

Vous configurez la clé gérée par le client pour obtenir des données d'exécution durables via le KMSKeyArn champ de l'DurableConfigobjet. Configurez-le lorsque vous créez la fonction avec CreateFunction  ; mettez-le à jour sur une fonction durable existante avec UpdateFunctionConfiguration.

Lambda console
Pour configurer une clé gérée par le client sur une fonction durable existante
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez une fonction durable.

  3. Choisissez Configuration, puis choisissez Exécution durable dans la barre de navigation de gauche.

  4. Choisissez Modifier.

  5. Sous Chiffrement, choisissez Utiliser une clé gérée par le client, puis choisissez une clé KMS dans la liste.

  6. Choisissez Enregistrer.

AWS CLI

Pour configurer une clé gérée par le client lorsque vous créez une fonction

Dans l'exemple de fonction de création suivant, l'--durable-configoption spécifie l'ARN clé géré par le client ainsi que le délai d'exécution durable et la période de rétention.

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}'

Pour configurer une clé gérée par le client sur une fonction durable existante

Utilisez la commande https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html update-function-configuration. Incluez tous les DurableConfig champs que vous souhaitez conserver, car --durable-config remplace l'objet entier.

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}'

Pour supprimer la clé gérée par le client d'une fonction durable

Omettre KMSKeyArn de. --durable-config Les exécutions existantes continuent d'utiliser la clé gérée par le client avec laquelle elles ont commencé. Les nouvelles exécutions utilisent plutôt le chiffrement par défaut.

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

Dans une AWS::Lambda::Function ressource, définissez la KMSKeyArn propriété 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
Important

Chaque exécution durable utilise la clé gérée par le client qui a été configurée sur la fonction lors de son démarrage. La modification ou la suppression de la clé n'affecte que les exécutions qui démarrent après la modification ; les exécutions en cours continuent à utiliser la clé avec laquelle elles ont commencé jusqu'à ce qu'elles se terminent ou échouent.

Lecture de données d'exécution durables

Deux API de lecture renvoient des données d'exécution durables :

  • GetDurableExecutionrenvoie l'état actuel d'une seule exécution, y compris sa charge utile en entrée, les dernières données de point de contrôle et les informations relatives aux résultats ou aux erreurs.

  • GetDurableExecutionHistoryrenvoie la liste ordonnée des événements émis par l'exécution, en indiquant les entrées et les résultats des points de contrôle, les entrées et les résultats de l'appel en chaîne et le résultat final.

Les deux API acceptent un paramètre de IncludeExecutionData demande. Lorsque IncludeExecutionData c'est le castrue, Lambda utilise les informations d'identification de l'appelant pour appeler la clé gérée par kms:Decrypt le client. Lambda renvoie ensuite les données d'exécution déchiffrées dans la réponse. L'identité de l'appelant doit figurer kms:Decrypt sur la clé gérée par le client.

Lorsque IncludeExecutionData c'est false le cas, Lambda n'appelle AWS KMS ni ne déchiffre les données d'exécution et la réponse est définie sur. ExecutionDataIncluded false La réponse inclut toujoursDurableConfig, ce qui fait écho à l'ARN clé géré par le client que l'exécution a utilisé. IncludeExecutionDataest défini par défautfalse, de sorte que les appelants qui n'ont besoin que de métadonnées n'ont pas besoin d' AWS KMS autorisations.

Exemple : GetDurableExecution réponse avec 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 } }

Invocations enchaînées

Lorsqu'une fonction durable utilise l'appel en chaîne pour appeler une autre fonction durable, Lambda traite l'exécution enfant comme une exécution durable indépendante : elle possède son propre ID d'exécution, son propre flux de points de contrôle et sa propre clé gérée par le client. La configuration des clés gérées par le client du parent n'a aucun effet sur les données de l'enfant, et la configuration des clés gérées par le client de l'enfant n'a aucun effet sur les données du parent.

Permissions

Le responsable du service Lambda doit avoir kms:GenerateDataKey et kms:Decrypt sur la clé gérée par le client de la fonction enfant. Si les fonctions parent et enfant utilisent des clés gérées par le client différentes, vous accordez l'accès au principal de service sur chaque touche séparément. Le rôle d'exécution de la fonction parent n'a pas besoin d'autorisations sur la clé gérée par le client de l'enfant.

Identifier quelle clé a chiffré quelle exécution

Les deux GetDurableExecution et ListDurableExecutionsByFunction renvoyez la clé ARN gérée par le client qui a chiffré chaque exécution. Utilisez ces API pour confirmer quelle clé était en vigueur au moment du démarrage de l'exécution d'un parent ou d'un enfant.

Mise en cache des clés de données

Pour réduire le volume d' AWS KMS appels et améliorer la disponibilité en cas d'interruption de service, Lambda met en cache une clé de données générée à partir de votre clé gérée par le client pendant 15 minutes maximum. Lorsque le cache est chaud, Lambda réutilise la même clé de données pour toutes les opérations au cours d'une exécution et pour toutes les exécutions démarrées pendant la fenêtre de cache.

Cost

Per-execution AWS KMS le coût reste faible car Lambda appelle GenerateDataKey au plus une fois par fenêtre de cache, et non une fois par point de contrôle. À des taux de demandes élevés, le coût par exécution diminue encore car un plus grand nombre d'exécutions partagent chaque clé de données mise en cache. Vous êtes facturé pour les AWS KMS appels que Lambda passe réellement, et non pour chaque point de contrôle ou lecture.

Stabilité statique

Les clés de données restent mises en cache pendant 15 minutes au maximum. Les modifications apportées à votre clé prendront effet lors de la prochaine actualisation du cache. Pendant les interruptions de service prolongées, Lambda continue de servir à partir du cache, ce qui permet aux exécutions en cours de fonctionnement.

CloudTrail

La mise en cache des clés de données signifie que vous voyez moins d'GenerateDataKeyévénements CloudTrail que d'exécutions ou de points de contrôle. Voir par Surveillance des touches KMS pour des fonctions durables exemple les événements.

Lorsque la clé gérée par le client n'est pas disponible

Si la clé gérée par le client avec laquelle une exécution a commencé est désactivée, sa suppression est programmée ou son accès est révoqué par le biais de la politique de clé, l'exécution ne peut pas progresser davantage. Au point de contrôle suivant, Lambda échoue à l'exécution avec une erreur qui ne peut pas être réessayée. AWS KMS La restauration de l'accès à la clé ne permet pas de reprendre automatiquement l'exécution. Vous devez démarrer une nouvelle exécution.

Les API qui lisent ou écrivent des charges utiles échouent également lorsque la clé n'est pas disponible. Ils peuvent renvoyer l'une des exceptions suivantes :

  • KMSAccessDeniedException: Lambda n'a pas pu déchiffrer les données d'exécution durables car l'accès à la clé KMS a été refusé.

  • KMSDisabledException: Lambda n'a pas pu déchiffrer les données d'exécution durables car la clé KMS est désactivée.

  • KMSInvalidStateException: Lambda n'a pas pu déchiffrer les données d'exécution durables car l'état de la clé KMS n'est pas valide pour. Decrypt

  • KMSNotFoundException: Lambda n'a pas pu déchiffrer les données d'exécution durables car la clé KMS est introuvable.

La restauration de l'accès à la clé KMS permet à ces API de lecture de réussir à nouveau pour les exécutions qui ont déjà échoué. Les exécutions qui ont échoué restent vouées à l'échec ; vous devez recommencer une nouvelle exécution.

Pour inspecter les métadonnées d'exécution alors que la clé KMS n'est pas disponible, appelez GetDurableExecution withIncludeExecutionData=false. Cela renvoie l'état de l'exécution, les horodatages et DurableConfig (y compris l'ARN de la clé KMS) sans appel. AWS KMS

Comme Lambda met en cache les clés de données, la désactivation d'une clé ne prend pas effet immédiatement. Pour en savoir plus, consultez Mise en cache des clés de données.

Important

La suppression d'une clé KMS dont dépendent encore les exécutions en cours ou conservées détruit définitivement ces exécutions et leur historique.

Surveillance des touches KMS pour des fonctions durables

Lorsque vous utilisez une clé gérée par le client dotée d'une fonction durable, vous pouvez l'utiliser AWS CloudTrail pour suivre les AWS KMS appels que Lambda passe en votre nom. Pour obtenir des conseils généraux sur la recherche d' AWS KMS événements, consultez la section Activité de AWS KMS l'API de recherche.

Pour vérifier que Lambda utilise votre clé comme prévu, recherchez les champs suivants dans chaque événement :

  • eventName: l'un des GenerateDataKeyDecrypt, ou DescribeKey

  • eventSource: kms.amazonaws.com

  • userIdentity.invokedBy: lambda.amazonaws.com

  • requestParameters.encryptionContext.aws:lambda:FunctionArn: l'ARN de la fonction durable

Les exemples suivants concernent CloudTrail des événements provenant d'un UpdateFunctionConfiguration appel CreateFunction ou qui configure une clé gérée par le client sur une fonction durable. Lambda émet trois AWS KMS appels pour valider la clé : un vrai DescribeKey et lancé à sec. GenerateDataKey Decrypt

GenerateDataKey

Lorsque vous définissez ou modifiez l'KMSKeyArnentréeDurableConfig, Lambda émet un essai sur la clé gérée par votre client afin de vérifier que la politique de clé permet à Lambda de dériver des clés de données pour le GenerateDataKey contexte de chiffrement de cette fonction. L'exécution à sec n'effectue aucun travail cryptographique mais enregistre un événement complet. CloudTrail L'exemple d'événement suivant enregistre l'opération de fonctionnement à sec GenerateDataKey :

{ "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

Lorsque vous définissez ou modifiez l'KMSKeyArnentréeDurableConfig, Lambda émet également un essai sur la clé gérée par votre client afin de vérifier que la politique de clé permet à Lambda de déchiffrer les données pour le Decrypt contexte de chiffrement de cette fonction. La version à sec utiliseIGNORE_CIPHERTEXT, donc aucun véritable texte chiffré n'est requis. L'exemple d'événement suivant enregistre l'opération de fonctionnement à sec Decrypt :

{ "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

Lorsque vous définissez ou modifiez l'entrée KMSKeyArnDurableConfig, Lambda appelle DescribeKey pour confirmer que la clé est symétrique et activée avant d'accepter la modification. Contrairement aux Decrypt sondes GenerateDataKey et, il s'agit d'un véritable appel, pas d'un essai à sec. L’exemple d’événement suivant enregistre l’opération 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" }