Optimisation des sections relatives aux stratégies de Ressources et Conditions - 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.

Optimisation des sections relatives aux stratégies de Ressources et Conditions

Vous pouvez restreindre la portée des autorisations d’un utilisateur en spécifiant des ressources et des conditions dans une stratégie IAM AWS Identity and Access Management. Chaque action d’une politique prend en charge une combinaison de types de ressources et de conditions qui varie en fonction du comportement de l’action.

Chaque déclaration de stratégie IAM accorde une autorisation pour une action effectuée sur une ressource. Lorsque l’action n’agit pas sur une ressource nommée, ou lorsque vous accordez l’autorisation d’effectuer l’action sur toutes les ressources, la valeur de la ressource de la stratégie est un caractère générique (*). Pour la plupart des actions, vous pouvez limiter les ressources qu’un utilisateur peut modifier en spécifiant l’Amazon Resource Name (ARN) d’une ressource ou un modèle ARN qui correspond à plusieurs ressources.

Par type de ressource, la conception générale pour restreindre la portée d’une action est la suivante :

  • Fonctions : les actions sur une fonction peuvent être limitées à une fonction spécifique selon l’ARN de la fonction, de la version ou de l’alias.

  • Mappage des sources d’événements : les actions peuvent être limitées à des ressources de mappage des sources d’événements spécifiques selon l’ARN. Le mappage des sources d’événements est toujours associé à une fonction. Vous pouvez également utiliser la condition lambda:FunctionArn pour restreindre les actions par fonction associée.

  • Couches : les actions liées à l’utilisation et aux autorisations relatives aux couches agissent sur les versions de couche.

  • Configuration de signature de code : les actions peuvent être limitées à des ressources de configuration de signature de code spécifiques selon l’ARN.

  • Balises : utilisez les conditions de balise standard. Pour en savoir plus, consultez Utilisation du contrôle d’accès basé sur les attributs dans Lambda.

Pour limiter les autorisations par ressource, spécifiez la ressource par son ARN.

Format ARN de ressource Lambda
  • Fonction – arn:aws:lambda:us-west-2:123456789012:function:my-function

  • Version de la fonction – arn:aws:lambda:us-west-2:123456789012:function:my-function:1

  • Alias de la fonction – arn:aws:lambda:us-west-2:123456789012:function:my-function:TEST

  • Mappage de source d’événement – arn:aws:lambda:us-west-2:123456789012:event-source-mapping:fa123456-14a1-4fd2-9fec-83de64ad683de6d47

  • Couche – arn:aws:lambda:us-west-2:123456789012:layer:my-layer

  • Version de la couche – arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1

  • Configuration de signature de code – arn:aws:lambda:us-west-2:123456789012:code-signing-config:my-csc

Par exemple, la stratégie ci-dessous autorise un utilisateur de Compte AWS 123456789012 à appeler une fonction nommée my-function dans la région USA Ouest (Oregon) AWS.

Exemple appeler une stratégie de fonction
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function" } ] }

Il s’agit d’un cas particulier, où l’identificateur de l’action (lambda:InvokeFunction) diffère de l’opération d’API (Appeler). Pour les autres actions, l’identificateur de l’action est le nom de l’opération avec le préfixe lambda:.

Comprendre la section Condition relative aux stratégies

Les conditions sont facultatives dans la stratégie, et appliquent une logique supplémentaire pour déterminer si une action est autorisée. Outre les conditions courantes prises en charge par toutes les actions, Lambda définit les types de condition que vous pouvez utiliser pour restreindre les valeurs des paramètres supplémentaires sur certaines actions.

Par exemple, la condition lambda:Principal permet de restreindre le service ou le compte auquel un utilisateur peut accorder l’accès selon la stratégie basée sur les ressources d’une fonction. La stratégie suivante permet à un utilisateur d’accorder une autorisation à des rubriques Amazon Simple Notification Service (Amazon SNS) d’appeler une fonction nommée test.

Exemple gestion des autorisations d’une stratégie de fonction
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageFunctionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:test:*", "Condition": { "StringEquals": { "lambda:Principal": "sns.amazonaws.com" } } } ] }

La condition nécessite que le principal soit Amazon SNS et pas un autre service ou compte. Le modèle de ressource exige que le nom de la fonction soit test et inclue un numéro de version ou un alias. Par exemple, test:v1.

Pour plus d’informations sur les ressources et les conditions pour Lambda et d’autresAWSservices, voirActions, ressources et clés de condition pour AWSservicesdans leRéférence de l’autorisation de service.

Fonctions de référencement dans la section Ressources relative aux stratégies

Vous référencez une fonction Lambda dans une déclaration de stratégie à l’aide d’un nom Amazon Resource Name (ARN). Le format de l’ARN d’une fonction dépend du fait que vous référenciez la fonction entière, la version d’une fonction ou un alias.

Lorsque vous effectuez des appels d’API Lambda, les utilisateurs peuvent spécifier une version ou un alias en transmettant un ARN de version ou d’alias dans le paramètre GetFunction FunctionName, ou en définissant une valeur dans le paramètre GetFunction Qualifier. Lambda prend des décisions d’autorisation en comparant l’élément de ressource dans la stratégie IAM au FunctionName et au Qualifier transmis dans les appels d’API. En cas d’incompatibilité, Lambda refuse la demande.

Que vous autorisiez ou refusiez une action sur votre fonction, vous devez utiliser les types ARN de fonction appropriés dans votre déclaration de stratégie pour obtenir les résultats attendus. Par exemple, si votre stratégie fait référence à l’ARN non qualifié, Lambda accepte les demandes faisant référence à l’ARN non qualifié, mais refuse les demandes faisant référence à un ARN qualifié.

Note

Vous ne pouvez pas utiliser un caractère générique (*) pour établir une correspondance avec l’ID du compte. Pour plus d’informations sur la syntaxe acceptée, consultezRéférence de politique JSON IAMdans leIAM User Guide.

Exemple permettant l’invocation d’un ARN non qualifié
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction" } ] }

Si votre stratégie fait référence à un ARN qualifié spécifique, Lambda accepte les demandes faisant référence à cet ARN, mais refuse les demandes faisant référence à l’ARN non qualifié ou à un ARN qualifié différent, par exemple,myFunction:2.

Exemple permettant l’invocation d’un ARN qualifié spécifique
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1" } ] }

Si votre stratégie fait référence à un ARN qualifié à l’aide de :*, Lambda accepte tout ARN qualifié mais refuse les demandes faisant référence à l’ARN non qualifié.

Exemple permettant l’invocation de n’importe quel ARN qualifié
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*" } ] }

Si votre stratégie fait référence à un ARN utilisant *, Lambda accepte tout ARN qualifié ou non qualifié.

Exemple permettant l’invocation de tout ARN qualifié ou non qualifié
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction*" } ] }

Actions IAM et comportements de fonctions pris en charge

Les actions définissent ce qui peut être autorisé par le biais des politiques IAM. Pour obtenir une liste des actions prises en charge par Lambda, consultez la rubrique Actions, ressources et clés de condition pour AWS Lambda dans la Référence de l’autorisation de service. Dans la plupart des cas, lorsqu’une action IAM autorise une action d’API Lambda, le nom de l’action IAM est identique à celui de l’action d’API Lambda, à l’exception des actions suivantes :

Action d’API Action IAM
Invoke lambda:InvokeFunction

GetLayerVersion

GetLayerVersionByArn

lambda:GetLayerVersion

Outre les ressources et les conditions définies dans la référence d’autorisation de service, Lambda prend en charge les ressources et conditions suivantes pour certaines actions. Nombre d’entre elles sont liées aux fonctions de référencement dans la section des ressources relative aux politiques. Les actions sur une fonction peuvent être limitées à une fonction spécifique selon l’ARN de la fonction, de la version ou de l’alias, tel que décrit dans le tableau suivant.

Action Ressource Condition

AddPermission

RemovePermission

InvokePermission: lambda:InvokeFunction

Version de la fonction

Alias de la fonction

N/A

UpdateFunctionConfiguration

N/A

lambda:CodeSigningConfigArn

CreateFunctionUrlConfig

DeleteFunctionUrlConfig

GetFunctionUrlConfig

UpdateFunctionUrlConfig

Alias de la fonction

N/A