Utilisation de IAM politiques basées sur les ressources dans 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.

Utilisation de IAM politiques basées sur les ressources dans Lambda

Lambda prend en charge les stratégies d’autorisations basées sur une ressource pour les fonctions et les couches Lambda. Vous pouvez utiliser des politiques basées sur les ressources pour accorder l'accès à d'autres AWS comptes, organisations ou services. Les stratégies basées sur les ressources s’appliquent à une seule fonction, version ou version de couche ou à un seul alias.

Console
Pour afficher la stratégie basée sur les ressources d’une fonction
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez une fonction.

  3. Sélectionnez Configuration (Configuration), puis Permissions (Autorisations).

  4. Faites défiler la page vers le bas, jusqu’à Resource-based policy (Stratégie basée sur les ressources), puis choisissez View policy document (Afficher le document de stratégie). La politique basée sur les ressources indique les autorisations appliquées lorsqu'un autre compte ou AWS service tente d'accéder à la fonction. L’exemple suivant montre une déclaration qui autorise Amazon S3 à invoquer une fonction nommée my-function pour un compartiment nommé amzn-s3-demo-bucket dans le compte 123456789012.

    Exemple Stratégie basée sur une ressource
    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "lambda-allow-s3-my-function", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } } } ] }
AWS CLI

Pour afficher une stratégie basée sur les ressources d’une fonction, utilisez la commande get-policy.

aws lambda get-policy \ --function-name my-function \ --output text

Vous devriez voir la sortie suivante:

{"Version":"2012-10-17","Id":"default","Statement":[{"Sid":"sns","Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function","Condition":{"ArnLike":{"AWS:SourceArn":"arn:aws:sns:us-east-2:123456789012:lambda*"}}}]} 7c681fc9-b791-4e91-acdf-eb847fdaa0f0

Pour les versions et les alias, ajoutez le numéro de version ou l’alias au nom de la fonction.

aws lambda get-policy --function-name my-function:PROD

Pour supprimer les autorisations de votre fonction, utilisez remove-permission.

aws lambda remove-permission \ --function-name example \ --statement-id sns

Utilisez la commande get-layer-version-policy pour afficher les autorisations sur une couche.

aws lambda get-layer-version-policy \ --layer-name my-layer \ --version-number 3 \ --output text

Vous devriez voir la sortie suivante:

b0cd9796-d4eb-4564-939f-de7fe0b42236 {"Sid":"engineering-org","Effect":"Allow","Principal":"*","Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-west-2:123456789012:layer:my-layer:3","Condition":{"StringEquals":{"aws:PrincipalOrgID":"o-t194hfs8cz"}}}"

Utilisez remove-layer-version-permission pour supprimer des déclarations de la stratégie.

aws lambda remove-layer-version-permission --layer-name my-layer --version-number 3 --statement-id engineering-org

APIActions soutenues

Les API actions Lambda suivantes prennent en charge les politiques basées sur les ressources :