ApiFunctionAuth - AWS Serverless Application Model

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.

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.

AuthorizationScopes

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.

Authorizer

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 como Authorizer 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 recurso AWS::Serverless::Api para descrever sua API, deverá usar o OverrideApiAuth com o Authorizer para substituir seu autorizador global. Consulte OverrideApiAuth 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ção AWS_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 para arn: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 recurso AWS::Serverless::Api. Essa propriedade só é necessária se você especificar um autorizador global e usar a propriedade DefinitionBody de um recurso AWS::Serverless::Api para descrever sua API.

nota

Quando você especifica OverrideApiAuth comotrue, AWS SAM substituirá seu autorizador global por quaisquer valores fornecidos para ApiKeyRequiredAuthorizer, ou. ResourcePolicy Portanto, pelo menos uma dessas propriedades também deve ser especificada durante o uso do OverrideApiAuth. 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