Accorder l'accès à la fonction Lambda à d'autres comptes - 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.

Accorder l'accès à la fonction Lambda à d'autres comptes

Pour partager une fonction avec une autre Compte AWS, ajoutez une déclaration d'autorisations entre comptes à la politique basée sur les ressources de la fonction. Exécutez la commande add permission et spécifiez l'ID du compte sous la principal forme. L’exemple suivant accorde au compte 111122223333 l’autorisation d’invoquer la fonction my-function avec l’alias prod.

aws lambda add-permission \ --function-name my-function:prod \ --statement-id xaccount \ --action lambda:InvokeFunction \ --principal 111122223333 \ --output text

Vous devriez voir la sortie suivante:

{"Sid":"xaccount","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-1:123456789012:function:my-function"}

La stratégie basée sur les ressources accorde à l’autre compte l’autorisation d’accéder à la fonction, mais n’autorise pas les utilisateurs de ce compte à dépasser leurs autorisations. Les utilisateurs de l'autre compte doivent disposer des autorisations utilisateur correspondantes pour utiliser le LambdaAPI.

Pour limiter l'accès à un utilisateur ou à un rôle dans un autre compte, spécifiez ARN l'identité complète en tant que principal. Par exemple, arn:aws:iam::123456789012:user/developer.

L’alias limite la version pouvant être invoquée par l’autre compte. L'autre compte doit inclure l'alias dans la fonctionARN.

aws lambda invoke \ --function-name arn:aws:lambda:us-east-2:123456789012:function:my-function:prod out

Vous devriez voir la sortie suivante :

{ "StatusCode": 200, "ExecutedVersion": "1" }

Le propriétaire de la fonction peut alors mettre à jour l’alias afin qu’il pointe vers une nouvelle version sans que l’appelant ait besoin de modifier la façon dont il invoque votre fonction. Cela permet de s’assurer que l’autre compte n’a pas besoin de changer son code pour utiliser la nouvelle version et qu’il est uniquement autorisé à invoquer la version de la fonction associée à l’alias.

Vous pouvez accorder un accès entre comptes pour la plupart API des actions effectuées sur une fonction existante. Par exemple, vous pouvez accorder l’accès à lambda:ListAliases afin qu’un compte puisse obtenir une liste des alias ou à lambda:GetFunction pour qu’il puisse télécharger le code de votre fonction. Ajoutez chaque autorisation séparément ou utilisez lambda:* pour accorder l’accès à toutes les actions pour la fonction spécifiée.

Pour autoriser d'autres comptes à accéder à plusieurs fonctions ou à effectuer des actions qui ne s'appliquent pas à une fonction, nous vous recommandons d'utiliser IAMdes rôles.