Octroi de 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.

Octroi de 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 en tant que principal. 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 l’API Lambda.

Afin de limiter l’accès à un utilisateur ou à un rôle dans un autre compte, spécifiez l’ARN complet de l’identité 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 alors inclure l’alias dans l’ARN de la fonction.

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 l’accès entre comptes pour n’importe quelle action d’API qui s’exécute 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 accorder à d’autres comptes l’autorisation pour plusieurs fonctions ou pour des actions qui ne s’exécutent pas sur une fonction, nous vous conseillons d’utiliser des rôles IAM.