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.
YAML
ApiKeyRequired:BooleanAuthorizationScopes:ListAuthorizer:StringInvokeRole:StringOverrideApiAuth:BooleanResourcePolicy:ResourcePolicyStatement
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
CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
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é
DefaultAuthorizersi vous l'avez spécifiée.Type : liste
Obligatoire : non
CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
Le
Authorizerpour 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éfinissantAuthorizersurNONE. 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é
DefinitionBodyd'une ressourceAWS::Serverless::Apipour décrire votre API, vous devez utiliserOverrideApiAuthavecAuthorizerpour remplacer votre mécanisme d'autorisation global. Pour plus d’informations, consultezOverrideApiAuth.Valeurs valides :
AWS_IAMNONE, ou l'identifiant logique de tout autorisateur défini dans votre AWS SAM modèle.Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
InvokeRole -
Spécifie le
InvokeRoleà utiliser pour l'autorisationAWS_IAM.Type : chaîne
Obligatoire : non
Par défaut :
CALLER_CREDENTIALSCloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
Informations complémentaires :
CALLER_CREDENTIALSmappe avecarn:aws:iam::, qui utilise les informations d'identification de l'appelant pour appeler le point de terminaison.:<user>/ OverrideApiAuth-
Définissez-la sur
truepour remplacer la configuration du mécanisme d'autorisation global de votre ressourceAWS::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éDefinitionBodyd'une ressourceAWS::Serverless::Apipour décrire votre API.Note
Lorsque vous spécifiez
OverrideApiAuthcommetrue, AWS SAM cela remplacera votre autorisateur global par toutes les valeurs fournies pourApiKeyRequiredAuthorizer, ou.ResourcePolicyC'est pourquoi au moins une de ces propriétés doit également être spécifiée lors de l'utilisation deOverrideApiAuth. Pour obtenir un exemple, consultez Remplacer un autorisateur global lorsque DefinitionBody for est spécifié AWS::Serverless::Api .Type : valeur booléenne
Obligatoire : non
CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
ResourcePolicy -
Configurez la stratégie de ressources pour ce chemin d'accès sur une API.
Type : ResourcePolicyStatement
Obligatoire : non
CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' 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