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:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy:ResourcePolicyStatement
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.
-
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.
-
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 unaAWS::Serverless::Api
risorsa per descrivere la tua API, devi usareOverrideApiAuth
withAuthorizer
per sovrascrivere l'autorizzazione globale. Per ulteriori informazioni, consultaOverrideApiAuth
.Valori validi:
AWS_IAM
NONE
, 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_IAM
autorizzazione.▬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 laDefinitionBody
proprietà di unaAWS::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