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.
YAML
ApiKeyRequired:BooleanAuthorizationScopes:ListAuthorizer:StringInvokeRole:StringOverrideApiAuth:BooleanResourcePolicy:ResourcePolicyStatement
Proprietà
-
ApiKeyRequired -
Richiede una chiave API per questa API, percorso e metodo.
Tipo: Booleano
Required: No
CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.
-
Gli ambiti di autorizzazione da applicare a questa API, percorso e metodo.
Gli ambiti specificati sostituiranno tutti gli ambiti applicati dalla
DefaultAuthorizerproprietà, se l'hai specificata.Tipo: Elenco
Required: No
CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.
-
Il
Authorizerper una funzione specifica.Se hai specificato un autorizzatore globale per la tua
AWS::Serverless::Apirisorsa, puoi sovrascrivere l'autorizzatore impostando su.AuthorizerNONEPer vedere un esempio, consulta Sostituisci un autorizzatore globale per la tua API REST di Amazon API Gateway.Nota
Se utilizzi la
DefinitionBodyproprietà di unaAWS::Serverless::Apirisorsa per descrivere la tua API, devi usareOverrideApiAuthwithAuthorizerper sovrascrivere l'autorizzazione globale. Per ulteriori informazioni, consultaOverrideApiAuth.Valori validi:
AWS_IAMNONE, o l'ID logico per qualsiasi autorizzatore definito nel modello. AWS SAMTipo: stringa
Required: No
CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.
-
InvokeRole -
Specifica l'uso
InvokeRoleda utilizzare per l'AWS_IAMautorizzazione.Tipo: stringa
Required: No
Default:
CALLER_CREDENTIALSCloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.
Note aggiuntive:
CALLER_CREDENTIALSmaps toarn:aws:iam::, che utilizza le credenziali del chiamante per richiamare l'endpoint.:<user>/ OverrideApiAuth-
Specificate come
truesovrascrivere la configurazione di autorizzazione globale della risorsa.AWS::Serverless::ApiQuesta proprietà è richiesta solo se si specifica un autorizzatore globale e si utilizza laDefinitionBodyproprietà di unaAWS::Serverless::Apirisorsa per descrivere l'API.Nota
Quando specifichi
OverrideApiAuthastrue, AWS SAM sostituirà l'autorizzazione globale con tutti i valori forniti perApiKeyRequired,Authorizero.ResourcePolicyPertanto, è necessario specificare almeno una di queste proprietà quando si utilizza.OverrideApiAuthPer vedere un esempio, consulta Sostituisci un autorizzatore globale quando viene specificato for DefinitionBody AWS::Serverless::Api .Tipo: Booleano
Required: No
CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.
-
ResourcePolicy -
Configura la politica delle risorse per questo percorso su un'API.
Tipo: ResourcePolicyStatement
Required: No
CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un 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