ApiFunctionAuth - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ApiFunctionAuth

Configura l'autorizzazione a livello di evento, per un'API, un percorso e un metodo specifici.

Sintassi

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

Proprietà

ApiKeyRequired

Richiede una chiave API per questa API, percorso e metodo.

Tipo: Booleano

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

AuthorizationScopes

Gli ambiti di autorizzazione da applicare a questa API, percorso e metodo.

Gli ambiti specificati sostituiranno tutti gli ambiti applicati dalla DefaultAuthorizer proprietà, se l'hai specificata.

Tipo: Elenco

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Authorizer

Il Authorizer per una funzione specifica.

Se hai specificato un autorizzatore globale per la tua AWS::Serverless::Api risorsa, puoi sovrascrivere l'autorizzatore impostando su. Authorizer NONE Per vedere un esempio, consulta Sostituisci un autorizzatore globale per la tua API REST di Amazon API Gateway.

Nota

Se utilizzi la DefinitionBody proprietà di una AWS::Serverless::Api risorsa per descrivere la tua API, devi usare OverrideApiAuth with Authorizer per sovrascrivere l'autorizzazione globale. Per ulteriori informazioni, consulta OverrideApiAuth.

Valori validi: AWS_IAMNONE, o l'ID logico per qualsiasi autorizzatore definito nel modello. AWS SAM

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

InvokeRole

Specifica l'uso InvokeRole da utilizzare per l'AWS_IAMautorizzazione.

Tipo: stringa

Required: No

Default: CALLER_CREDENTIALS

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Note aggiuntive: CALLER_CREDENTIALS maps toarn:aws:iam::*:user/*, che utilizza le credenziali del chiamante per richiamare l'endpoint.

OverrideApiAuth

Specificate come true sovrascrivere la configurazione di autorizzazione globale della risorsa. AWS::Serverless::Api Questa proprietà è richiesta solo se si specifica un autorizzatore globale e si utilizza la DefinitionBody proprietà di una AWS::Serverless::Api risorsa per descrivere l'API.

Nota

Quando specifichi OverrideApiAuth astrue, AWS SAM sostituirà l'autorizzazione globale con tutti i valori forniti perApiKeyRequired, Authorizer o. ResourcePolicy Pertanto, è necessario specificare almeno una di queste proprietà quando si utilizza. OverrideApiAuth Per vedere un esempio, consulta Sostituisci un autorizzatore globale quando viene specificato for DefinitionBody AWS::Serverless::Api .

Tipo: Booleano

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

ResourcePolicy

Configura la politica delle risorse per questo percorso su un'API.

Tipo: ResourcePolicyStatement

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Esempi

Autenticazione della funzione

L'esempio seguente specifica l'autorizzazione a livello di funzione.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

Sostituisci un autorizzatore globale per la tua API REST di Amazon API Gateway

Puoi specificare un autorizzatore globale per la tua risorsa. AWS::Serverless::Api Di seguito è riportato un esempio che configura un autorizzatore globale predefinito:

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

Per sovrascrivere l'autorizzatore predefinito per la tua AWS Lambda funzione, puoi specificare as. Authorizer NONE Di seguito è riportato un esempio:

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

Sostituisci un autorizzatore globale quando viene specificato for DefinitionBody AWS::Serverless::Api

Quando si utilizza la DefinitionBody proprietà per descrivere la AWS::Serverless::Api risorsa, il metodo override precedente non funziona. Di seguito è riportato un esempio di utilizzo della DefinitionBody proprietà per una AWS::Serverless::Api risorsa:

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

Per sovrascrivere l'autorizzatore globale, utilizzate la OverrideApiAuth proprietà. Di seguito è riportato un esempio che utilizza OverrideApiAuth per sostituire l'autorizzatore globale con il valore fornito per: 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