Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Comment accorder des autorisations IAM à une fonction Lambda à l’aide d’un modèle AWS SAM ?
Je souhaite accorder des autorisations aux fonctions AWS Lambda dans mon application de modèle d’application sans serveur AWS (AWS SAM). Comment définir un rôle d’exécution Lambda avec des autorisations limitées dans un modèle AWS SAM ?
Brève description
Pour définir un rôle d’exécution Lambda dans un modèle AWS SAM, vous pouvez utiliser les propriétés de ressources AWS::Serverless::Function suivantes :
- Policies : vous pouvez créer un nouveau rôle d’exécution à l’aide de politiques prédéfinies englobant votre fonction Lambda.
- Role : vous pouvez définir un rôle Gestion des identités et des accès AWS (AWS IAM) à utiliser comme rôle d’exécution de la fonction.
- PermissionsBoundary : vous pouvez définir une limite d’autorisations IAM pour le rôle d’exécution créé.
Remarque : les propriétés Policies et Role ne peuvent pas être utilisées ensemble. La propriété Role est utile lorsque votre rôle d’exécution nécessite des autorisations trop spécifiques pour faire appel à des politiques prédéfinies.
Résolution
Spécification de politiques pour un nouveau rôle d’exécution Lambda
Pour la propriété Policies, saisissez une combinaison des éléments suivants :
- Le nom d’une politique gérée par AWS
- Le nom d’un modèle de politique AWS SAM
- Un document de politique en ligne
Remarque : les modèles de politiques AWS SAM sont limitées à des ressources AWS spécifiques. Consultez le tableau de modèles de politiques pour obtenir une liste de modèles de politiques et des autorisations qu’ils accordent à vos fonctions Lambda.
Voici quelques exemples de modèles AWS SAM au format YAML où la propriété Policies est définie :
Exemple de modèle AWS SAM au format YAML avec une politique gérée par AWS nommée
AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' b Resources: MyFunction: Type: 'AWS::Serverless::Function' Properties: Handler: index.handler Runtime: nodejs8.10 CodeUri: 's3://my-bucket/function.zip' Policies: # Give the Lambda service access to poll your DynamoDB Stream - AmazonDynamoDBFullAccess
Exemple de modèle AWS SAM au format YAML avec un modèle de politique AWS SAM (SQSPollerPolicy) défini
MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - SQSPollerPolicy: QueueName: !GetAtt MyQueue.QueueName
Exemple de modèle AWS SAM au format YAML avec un document de politique en ligne défini
AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: MyFunction: Type: 'AWS::Serverless::Function' Properties: Handler: index.handler Runtime: nodejs8.10 CodeUri: 's3://my-bucket/function.zip' Policies: - Statement: - Sid: SSMDescribeParametersPolicy Effect: Allow Action: - ssm:DescribeParameters Resource: '*' - Sid: SSMGetParameterPolicy Effect: Allow Action: - ssm:GetParameters - ssm:GetParameter Resource: '*'
(Facultatif) Spécification d’une limite d’autorisations IAM
Pour définir les autorisations maximales autorisées pour le rôle d’exécution de votre fonction Lambda, vous pouvez utiliser une limite d’autorisations IAM.
Pour définir une limite d’autorisations IAM, procédez comme suit dans votre modèle AWS SAM au format YAML :
Spécification de l’Amazon Resource Name (ARN) d’une limite d’autorisations
Pour la propriété PermissionsBoundary, saisissez l’ARN d’une limite d’autorisations. Par exemple :
Properties: PermissionsBoundary: arn:aws:iam::123456789012:policy/LambdaBoundaries
Remarque : vous pouvez uniquement définir PermissionsBoundary lorsque vous créez un nouveau rôle avec votre modèle AWS SAM. Vous ne pouvez pas définir de limite d’autorisations pour un Rôle existant que vous spécifiez.
Spécification d’un rôle d’exécution Lambda
Pour la propriété Role, saisissez l’une des informations suivantes :
- L’ARN d’un rôle d’exécution Lambda auquel une politique d’autorisations IAM est attachée.
- Une référence à une ressource Role que vous avez définie dans le même modèle AWS SAM.
Remarque : si vous ne spécifiez aucun Rôle dans votre modèle AWS SAM, un rôle d’exécution est créé lorsque vous déployez votre application. Ce rôle d’exécution inclut toutes les Politiques que vous définissez.
Exemple de modèle AWS SAM au format YAML avec la propriété de Rôle définie
AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: MyFunction: Type: 'AWS::Serverless::Function' Properties: Handler: index.handler Runtime: nodejs8.10 CodeUri: 's3://my-bucket/function.zip' Role: arn:aws:iam::111111111111:role/SAMPolicy
Empaquetage et déploiement de votre application
1. Dans l’interface de la ligne de commande AWS SAM (AWS SAM CLI), exécutez la commande sam build pour créer votre application et la mettre en package.
**Remarque :**si des erreurs surviennent lors de l’exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente de l’AWS CLI.
2. Exécutez la commande sam deploy pour déployer votre package d’application AWS SAM.
Pour en savoir plus, consultez les pages Création d’applications et Déploiement d’applications sans serveur.
Informations connexes
Modèle d’application sans serveur AWS (AWS SAM) (référentiel AWS SAM de GitHub)
Modèles de politiques (référentiel AWS SAM de GitHub)
- Sujets
- ServerlessCompute
- Balises
- AWS Lambda
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a 7 mois
- demandé il y a 2 ans
- demandé il y a 2 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 2 ans
AWS OFFICIELA mis à jour il y a un an