As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
ApiFunctionAuth
Configura a autorização no nível do evento, para uma API, um caminho e um método específicos.
Sintaxe
Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.
YAML
ApiKeyRequired:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy:ResourcePolicyStatement
Propriedades
-
ApiKeyRequired
-
Requer uma chave de API para essa API, caminho e método.
Tipo: booliano
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
Os escopos de autorização a serem aplicados a essa API, caminho e método.
Os escopos que você especificar substituirão quaisquer escopos aplicados pela propriedade
DefaultAuthorizer
, caso você a tenha especificado.Tipo: Lista
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
O
Authorizer
para uma função específica.Se você tiver um autorizador global especificado para seu recurso
AWS::Serverless::Api
, poderá substituí-lo configurando comoAuthorizer
NONE
. Para ver um exemplo, consulte Substitua um autorizador global para sua API REST do Amazon API Gateway.nota
Se você usar a propriedade
DefinitionBody
de um recursoAWS::Serverless::Api
para descrever sua API, deverá usar oOverrideApiAuth
com oAuthorizer
para substituir seu autorizador global. ConsulteOverrideApiAuth
para obter mais informações.Valores válidos:
AWS_IAM
,NONE
, ou a ID lógica de qualquer autorizador definido em seu AWS SAM modelo.Tipo: string
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
InvokeRole
-
Especifica o
InvokeRole
a ser usado para autorizaçãoAWS_IAM
.Tipo: string
Obrigatório: não
Padrão:
CALLER_CREDENTIALS
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
Notas adicionais:
CALLER_CREDENTIALS
mapeia paraarn:aws:iam::*:user/*
, que usa as credenciais do chamador para invocar o endpoint. OverrideApiAuth
-
Especifique como
true
para substituir a configuração global do autorizador do seu recursoAWS::Serverless::Api
. Essa propriedade só é necessária se você especificar um autorizador global e usar a propriedadeDefinitionBody
de um recursoAWS::Serverless::Api
para descrever sua API.nota
Quando você especifica
OverrideApiAuth
comotrue
, AWS SAM substituirá seu autorizador global por quaisquer valores fornecidos paraApiKeyRequired
Authorizer
, ou.ResourcePolicy
Portanto, pelo menos uma dessas propriedades também deve ser especificada durante o uso doOverrideApiAuth
. Para ver um exemplo, consulte Substituir um autorizador global quando DefinitionBody for especificado AWS::Serverless::Api .Tipo: booliano
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
ResourcePolicy
-
Configure a política de recursos para esse caminho em uma API.
Tipo: ResourcePolicyStatement
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
Exemplos
Function-Auth
O exemplo a seguir especifica a autorização no nível da função.
YAML
Auth: ApiKeyRequired: true Authorizer: NONE
Substitua um autorizador global para sua API REST do Amazon API Gateway
Você pode especificar um autorizador global para seu recurso AWS::Serverless::Api
. Este é um exemplo que configura um autorizador padrão global:
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
Para substituir o autorizador padrão da sua AWS Lambda função, você pode especificar Authorizer
como. NONE
Veja um exemplo a seguir:
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
Substituir um autorizador global quando DefinitionBody for especificado AWS::Serverless::Api
Ao usar a propriedade DefinitionBody
para descrever seu recurso AWS::Serverless::Api
, o método de substituição anterior não funciona. Veja a seguir um exemplo de uso da propriedade DefinitionBody
para um recurso 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
Para substituir o autorizador global, use a propriedade OverrideApiAuth
. Veja a seguir um exemplo que usa o OverrideApiAuth
para substituir o autorizador global pelo valor fornecido para 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