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.
Ressources et conditions pour les actions Lambda
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.
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
Par exemple, la politique suivante permet Compte AWS 123456789012
à un utilisateur d'appeler une fonction nommée my-function
dans la AWS région USA Ouest (Oregon).
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:
.
Sections
Conditions de stratégie
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 de Lambda et d'autres AWS services, consultez la section Actions, ressources et clés de condition pour les AWS services dans la référence d'autorisation de service.
Noms de ressource de fonction
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.
Lors des appels d'API Lambda, les utilisateurs peuvent spécifier une version ou un alias en transmettant un ARN de version ou un ARN d'alias dans le GetFunctionFunctionName
paramètre, ou en définissant une valeur dans le GetFunctionQualifier
paramètre. 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 de fonction
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. Les actions qui ne supportent pas les restrictions de ressources sont accordées pour toutes les ressources. (*
).
Actions de fonction | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Action | Ressource | Condition | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction Version de la fonction Alias de la fonction |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Autorisation: |
Fonction Version de la fonction Alias de la fonction |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteFunctionCodeSigningConfig |
Fonction |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction Alias de la fonction |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteFunctionEventInvokeConfig |
Fonction |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteProvisionedConcurrencyConfig |
Alias de la fonction Version de la fonction |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Aucun |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fonction |
|
Actions de mappage de la source d'événement
Pour les mappages de source d'événement, la suppression et la mise à jour des autorisations peuvent se limiter à une source d'événement spécifique. La condition lambda:FunctionArn
vous permet de limiter les fonctions qu'un utilisateur peut configurer pour appeler une source d'événement.
Pour ces actions, la ressource est le mappage de source d'événement. Lambda fournit une condition qui vous permet de restreindre les autorisations selon la fonction appelée par le mappage de source d'événement.
Actions de mappage de la source d'événement | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Action | Ressource | Condition | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mappage de source d’événement |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Aucun |
Actions de couche
Les actions sur les couches vous permettent de limiter les couches qu'un utilisateur peut gérer ou utiliser avec une fonction. Les actions liées à l'utilisation et aux autorisations relatives aux couches, agissent sur les versions de couche, alors que PublishLayerVersion
agit sur les noms de couche. Vous pouvez utiliser des caractères génériques pour restreindre les couches qu'un utilisateur peut utiliser par leur nom.
Note
L'GetLayerVersionaction couvre également GetLayerVersionByArn. Lambda ne prend pas en charge GetLayerVersionByArn
tant qu'action IAM.
Actions de couche | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Action | Ressource | Condition | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Version de la couche |
Aucun | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Couche |
Aucun | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Aucun |