ApiFunctionAuth - AWS Serverless Application Model

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.

ApiFunctionAuth

Configure l'autorisation au niveau de l'événement, pour une API, un chemin et une méthode spécifiques.

Syntaxe

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

Propriétés

ApiKeyRequired

Nécessite une clé API pour cette API, ce chemin d'accès et cette méthode.

Type : valeur booléenne

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

AuthorizationScopes

Les étendues d'autorisation à appliquer à cette API, ce chemin d'accès et cette méthode.

Les étendues que vous spécifiez remplaceront toutes les étendues appliquées par la propriété DefaultAuthorizer si vous l'avez spécifiée.

Type : liste

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Authorizer

Le Authorizer pour une fonction spécifique.

Si un mécanisme d'autorisation global est spécifié pour votre ressource AWS::Serverless::Api, vous pouvez remplacer le mécanisme d'autorisation en définissant Authorizer sur NONE. Pour obtenir un exemple, consultez Remplacer un mécanisme d'autorisation global pour votre API REST Amazon API Gateway.

Note

Si vous utilisez la propriété DefinitionBody d'une ressource AWS::Serverless::Api pour décrire votre API, vous devez utiliser OverrideApiAuth avec Authorizer pour remplacer votre mécanisme d'autorisation global. Pour plus d’informations, consultez OverrideApiAuth.

Valeurs valides : AWS_IAMNONE, ou l'identifiant logique de tout autorisateur défini dans votre AWS SAM modèle.

Type : chaîne

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

InvokeRole

Spécifie le InvokeRole à utiliser pour l'autorisation AWS_IAM.

Type : chaîne

Obligatoire : non

Par défaut : CALLER_CREDENTIALS

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Informations complémentaires : CALLER_CREDENTIALS mappe avec arn:aws:iam::*:user/*, qui utilise les informations d'identification de l'appelant pour appeler le point de terminaison.

OverrideApiAuth

Définissez-la sur true pour remplacer la configuration du mécanisme d'autorisation global de votre ressource AWS::Serverless::Api. Cette propriété n'est requise que si vous spécifiez un mécanisme d'autorisation global et que vous utilisez la propriété DefinitionBody d'une ressource AWS::Serverless::Api pour décrire votre API.

Note

Lorsque vous spécifiez OverrideApiAuth commetrue, AWS SAM cela remplacera votre autorisateur global par toutes les valeurs fournies pour ApiKeyRequiredAuthorizer, ou. ResourcePolicy C'est pourquoi au moins une de ces propriétés doit également être spécifiée lors de l'utilisation de OverrideApiAuth. Pour obtenir un exemple, consultez Remplacer un autorisateur global lorsque DefinitionBody for est spécifié AWS::Serverless::Api .

Type : valeur booléenne

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

ResourcePolicy

Configurez la stratégie de ressources pour ce chemin d'accès sur une API.

Type : ResourcePolicyStatement

Obligatoire : non

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Exemples

Fonction-Auth (Autorisation fonction)

L'exemple suivant spécifie l'autorisation au niveau de la fonction.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

Remplacer un mécanisme d'autorisation global pour votre API REST Amazon API Gateway

Vous pouvez spécifier un mécanisme d'autorisation global pour votre ressource AWS::Serverless::Api. Voici un exemple de configuration d'un mécanisme d'autorisation global par défaut :

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth

Pour remplacer l'autorisateur par défaut pour votre AWS Lambda fonction, vous pouvez spécifier Authorizer comme. NONE Voici un exemple :

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE

Remplacer un autorisateur global lorsque DefinitionBody for est spécifié AWS::Serverless::Api

Lorsque vous utilisez la propriété DefinitionBody pour décrire votre ressource AWS::Serverless::Api, la méthode de remplacement précédente ne fonctionne pas. Voici un exemple d'utilisation de la propriété DefinitionBody pour une ressource AWS::Serverless::Api :

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2.0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth

Pour annuler le mécanisme d'autorisation global, utilisez la propriété OverrideApiAuth. Voici un exemple qui utilise OverrideApiAuth pour remplacer le mécanisme d'autorisation global par la valeur fournie pour Authorizer :

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2-0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth MyAuthFn: Type: AWS::Serverless::Function ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE OverrideApiAuth: true Path: /lambda-token