AddPermission - 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.

AddPermission

Accorde à une organisation Service AWS, Compte AWS ou AWS l’autorisation d’utiliser une fonction. Vous pouvez appliquer la politique au niveau de la fonction ou spécifier un qualificateur, afin de restreindre l’accès à un alias ou une version uniques. Si vous utilisez un qualificateur, le mécanisme d’invocation doit utiliser l’ARN (Amazon Resource Name) complet de cette version ou cet alias pour invoquer la fonction. Remarque : Lambda ne prend pas en charge l’ajout de stratégie à la version $LATEST.

Pour accorder une autorisation à un autre compte, spécifiez l’ID du compte comme paramètre Principal. Pour accorder l’autorisation à une organisation définie dans AWS Organizations, spécifiez l’ID de l’organisation en tant que PrincipalOrgID. Pour Services AWS, le principal est un identifiant de style domaine que le service définit, tel que s3.amazonaws.com ou sns.amazonaws.com. Pour les Services AWS, vous pouvez également spécifier l’ARN de la ressource associée en tant que SourceArn. Si vous accordez une autorisation à un principal de service sans spécifier de la source, d’autres comptes pourraient éventuellement configurer des ressources dans leur compte pour invoquer votre fonction Lambda.

Cette opération ajoute une instruction à une politique d’autorisations basée sur une ressource pour la fonction. Pour plus d’informations sur les politiques de fonction, consultez Utilisation des politiques basées sur les ressources pour Lambda.

Syntaxe de la demande

POST /2015-03-31/functions/FunctionName/policy?Qualifier=Qualifier HTTP/1.1 Content-type: application/json { "Action": "string", "EventSourceToken": "string", "FunctionUrlAuthType": "string", "Principal": "string", "PrincipalOrgID": "string", "RevisionId": "string", "SourceAccount": "string", "SourceArn": "string", "StatementId": "string" }

Paramètres de demande URI

La demande utilise les paramètres URI suivants.

FunctionName

Nom de l’alias, de la version ou de la fonction Lambda.

Formats de nom
  • Nom de la fonctionmy-function (nom-uniquement), my-function:v1 (avec alias).

  • ARN de fonctionarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • ARN partiel123456789012:function:my-function.

Vous pouvez ajouter un numéro de version ou un alias à l’un des formats. Contrainte de longueur qui s’applique uniquement à l’ARN complet. Si vous spécifiez uniquement le nom de la fonction, ce dernier est limité à 64 caractères.

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 140.

Modèle : (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Obligatoire : oui

Qualifier

Spécifiez une version ou un alias pour ajouter des autorisations à une version publiée de la fonction.

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 128.

Modèle : (|[a-zA-Z0-9$_-]+)

Corps de la demande

Cette demande accepte les données suivantes au format JSON.

Action

Action que le principal peut utiliser sur la fonction. Par exemple, lambda:InvokeFunction ou lambda:GetFunction.

Type : chaîne

Modèle : (lambda:[*]|lambda:[a-zA-Z]+|[*])

Obligatoire : oui

EventSourceToken

Pour les fonctions Alexa Smart Home, il s’agit d’un jeton à fournir par le mécanisme d’invocation.

Type : chaîne

Contraintes de longueur : Longueur minimum de 0. Longueur maximum de 256.

Modèle : [a-zA-Z0-9._\-]+

Obligatoire : non

FunctionUrlAuthType

Le type d’authentification que votre URL de fonction utilise. Définissez sa valeur sur AWS_IAM si vous voulez limiter l’accès aux utilisateurs authentifiés uniquement. Définissez la valeur sur NONE, si vous souhaitez contourner l’authentification IAM pour créer un point de terminaison public. Pour plus d’informations, consultez Modèle de sécurité et d’authentification pour les URL de fonctions Lambda.

Type : chaîne

Valeurs valides : NONE | AWS_IAM

Obligatoire : non

Principal

Service AWS ou Compte AWS qui invoque la fonction. Si vous spécifiez un service, utilisez SourceArn ou SourceAccount pour limiter les utilisateurs pouvant invoquer la fonction via ce service.

Type : chaîne

Modèle : [^\s]+

Obligatoire : oui

PrincipalOrgID

L’identifiant de votre organisation dans AWS Organizations. Utilisez ceci pour accorder des autorisations à tous les comptes Comptes AWS de cette organisation.

Type : chaîne

Contraintes de longueur : longueur minimum de 12. Longueur maximum de 34.

Modèle : ^o-[a-z0-9]{10,32}$

Obligatoire : non

RevisionId

Ne mettez à jour la stratégie que si l’ID de révision correspond à l’ID spécifié. Utilisez cette option pour éviter de modifier une stratégie qui a changé depuis la dernière lecture.

Type : chaîne

Obligatoire : non

SourceAccount

Pour Service AWS, ID du compte Compte AWS propriétaire de la ressource. Utilisez-le avec SourceArn pour vous assurer que le compte spécifié est bien le propriétaire de la ressource. Il est possible qu’un compartiment Amazon S3 soit supprimé par son propriétaire et recréé par un autre compte.

Type : chaîne

Contraintes de longueur : Longueur maximum de 12.

Modèle : \d{12}

Obligatoire : non

SourceArn

Pour les services Services AWS, ARN de la ressource AWS qui invoque la fonction. Par exemple, un compartiment Amazon S3 ou une rubrique Amazon SNS.

Notez que Lambda configure la comparaison à l’aide de l’opérateur StringLike.

Type : chaîne

Modèle : arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

Obligatoire : non

StatementId

Identifiant d’instruction qui différencie l’instruction des autres instructions dans la même stratégie.

Type : chaîne

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 100.

Modèle : ([a-zA-Z0-9-_]+)

Obligatoire : oui

Syntaxe de la réponse

HTTP/1.1 201 Content-type: application/json { "Statement": "string" }

Eléments de réponse

Si l’action aboutit, le service renvoie une réponse HTTP 201.

Les données suivantes sont renvoyées au format JSON par le service.

Statement

Instruction d’autorisation ajoutée à la stratégie de fonction.

Type : chaîne

Erreurs

Pour plus d'informations sur les erreurs courantes pour toutes les actions, consultez Erreurs courantes.

InvalidParameterValueException

L’un des paramètres dans la demande n’est pas valide.

Code d’état HTTP : 400

PolicyLengthExceededException

La stratégie d’autorisations pour la ressource est trop volumineuse. Pour plus d’informations, consultez Quotas Lambda.

Code d’état HTTP : 400

PreconditionFailedException

La valeur RevisionId fournie ne correspond pas à la dernière version de RevisionId la fonction ou de l'alias Lambda. Appelez l'opération GetFunction ou l'GetAliasAPI pour récupérer la dernière version RevisionId de votre ressource.

Code d’état HTTP : 412

ResourceConflictException

La ressource existe déjà ou une autre opération est en cours.

Code d’état HTTP : 409

ResourceNotFoundException

La ressource spécifiée dans la demande n’existe pas.

Code d’état HTTP : 404

ServiceException

Le service AWS Lambda a rencontré une erreur interne.

Code d’état HTTP : 500

TooManyRequestsException

La limite de débit de demande a été dépassée. Pour plus d’informations, consultez Quotas Lambda.

Code d’état HTTP : 429

consultez aussi

Pour plus d’informations sur l’utilisation de cette API dans l’un des kits SDK AWS spécifiques au langage, consultez les ressources suivantes :