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:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy: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
AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS 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é
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.
-
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éfinissantAuthorizer
surNONE
. 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 ressourceAWS::Serverless::Api
pour décrire votre API, vous devez utiliserOverrideApiAuth
avecAuthorizer
pour remplacer votre mécanisme d'autorisation global. Pour plus d’informations, consultezOverrideApiAuth
.Valeurs valides :
AWS_IAM
NONE
, 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'autorisationAWS_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 avecarn: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 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éDefinitionBody
d'une ressourceAWS::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 pourApiKeyRequired
Authorizer
, ou.ResourcePolicy
C'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
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