Sécurité et autorisations pour les fonctions durables de Lambda - 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.

Sécurité et autorisations pour les fonctions durables de Lambda

Les fonctions durables de Lambda nécessitent des autorisations IAM spécifiques pour gérer les opérations des points de contrôle. Respectez le principe du moindre privilège en n'accordant que les autorisations dont votre fonction a besoin.

Autorisations du rôle d’exécution

Le rôle d'exécution de votre fonction durable nécessite des autorisations pour créer des points de contrôle et récupérer l'état d'exécution. La politique suivante indique les autorisations minimales requises :

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

Lorsque vous créez une fonction durable à l'aide de la console, Lambda ajoute automatiquement ces autorisations au rôle d'exécution. Si vous créez la fonction à l'aide du AWS CLI ou AWS CloudFormation, ajoutez ces autorisations à votre rôle d'exécution.

Principe du moindre privilège

Délimitez l'Resourceélément à une fonction spécifique ARNs au lieu d'utiliser des caractères génériques. Cela limite le rôle d'exécution aux opérations de point de contrôle uniquement pour les fonctions qui en ont besoin.

Exemple : autorisations étendues pour plusieurs fonctions

{ "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:*" ] } ] }

Vous pouvez également utiliser la politique AWS gérée AWSLambdaBasicDurableExecutionRolePolicy qui inclut les autorisations d'exécution durables requises ainsi que les autorisations d'exécution Lambda de base pour Amazon CloudWatch Logs.

Chiffrement d'état

Les fonctions Lambda Durable activent automatiquement le chiffrement au repos à l'aide de clés AWS détenues gratuitement. Chaque exécution de fonction conserve un état isolé auquel les autres exécutions ne peuvent pas accéder. Les clés gérées par le client (CMK) ne sont pas prises en charge.

Les données des points de contrôle incluent :

  • Résultats des étapes et valeurs renvoyées

  • Progrès et calendrier de l'exécution

  • Informations sur l'état d'attente

Toutes les données sont cryptées en transit à l'aide du protocole TLS lorsque Lambda lit ou écrit des données de point de contrôle.

Chiffrement personnalisé avec sérialiseurs et désérialiseurs personnalisés

Pour les exigences de sécurité critiques, vous pouvez implémenter votre propre mécanisme de chiffrement et de déchiffrement à l'aide de sérialiseurs et de désérialiseurs personnalisés () à l'aide d'un SDK durable. SerDer Cette approche vous donne un contrôle total sur les clés de chiffrement et les algorithmes utilisés pour protéger les données des points de contrôle.

Important

Lorsque vous utilisez un chiffrement personnalisé, vous perdez la visibilité des résultats des opérations dans la console Lambda et les réponses de l'API. Les données des points de contrôle apparaissent cryptées dans l'historique des exécutions et ne peuvent pas être inspectées sans déchiffrement.

Le rôle d'exécution de votre fonction kms:Decrypt nécessite kms:Encrypt et autorise la AWS KMS clé utilisée dans l' SerDer implémentation personnalisée.

CloudTrail journalisation

Lambda enregistre les opérations des points de contrôle sous forme d'événements de données dans. AWS CloudTrail Vous pouvez l'utiliser CloudTrail pour auditer le moment où les points de contrôle sont créés, suivre les changements d'état d'exécution et surveiller l'accès aux données d'exécution durables.

Les opérations de point de contrôle apparaissent dans CloudTrail les journaux sous les noms d'événements suivants :

  • CheckpointDurableExecution- Enregistré lorsqu'une étape se termine et crée un point de contrôle

  • GetDurableExecutionState- Enregistré lorsque Lambda récupère l'état d'exécution pendant la rediffusion

Pour activer la journalisation des événements de données pour des fonctions durables, configurez un journal CloudTrail pour enregistrer les événements de données Lambda. Pour plus d'informations, consultez la section Journalisation des événements liés aux données dans le Guide de CloudTrail l'utilisateur.

Exemple : entrée de CloudTrail journal pour le fonctionnement du point de contrôle

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

Considérations relatives à l’accès intercompte

Si vous invoquez des fonctions durables sur plusieurs AWS comptes, le compte appelant a besoin d'une lambda:InvokeFunction autorisation, mais les opérations de point de contrôle utilisent toujours le rôle d'exécution dans le compte de la fonction. Le compte appelant ne peut pas accéder directement aux données du point de contrôle ou à l'état d'exécution.

Cette isolation garantit que les données des points de contrôle restent sécurisées dans le compte de la fonction, même lorsqu'elles sont invoquées depuis des comptes externes.

Fonctionnalités de sécurité Lambda héritées

Les fonctions durables héritent de toutes les fonctionnalités de sécurité, de gouvernance et de conformité de Lambda, notamment la connectivité VPC, le chiffrement des variables d'environnement, les files d'attente lettre morte, la simultanéité réservée, les URLs fonctions, la signature de code et les certifications de conformité (SOC, PCI DSS, HIPAA, etc.).

Pour des informations détaillées sur les fonctionnalités de sécurité Lambda, consultez la section Sécurité AWS Lambda dans le guide du développeur Lambda. Les seules considérations de sécurité supplémentaires pour les fonctions durables sont les autorisations de point de contrôle décrites dans ce guide.