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:BooleanAuthorizationScopes:ListAuthorizer:StringInvokeRole:StringOverrideApiAuth:BooleanResourcePolicy:ResourcePolicyStatement
Propriedades
-
ApiKeyRequired -
Requer uma chave de API para essa API, caminho e método.
Tipo: booliano
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem 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
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
O
Authorizerpara uma função específica.Se você tiver um autorizador global especificado para seu recurso
AWS::Serverless::Api, poderá substituí-lo configurando comoAuthorizerNONE. Para obter um exemplo, consulte Substitua um autorizador global para sua API REST do Amazon API Gateway.nota
Se você usar a propriedade
DefinitionBodyde um recursoAWS::Serverless::Apipara descrever sua API, deverá usar oOverrideApiAuthcom oAuthorizerpara substituir seu autorizador global. ConsulteOverrideApiAuthpara 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
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
InvokeRole -
Especifica o
InvokeRolea ser usado para autorizaçãoAWS_IAM.Tipo: string
Obrigatório: não
Padrão:
CALLER_CREDENTIALSCloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
Notas adicionais:
CALLER_CREDENTIALSmapeia paraarn:aws:iam::, que usa as credenciais do chamador para invocar o endpoint.:<user>/ OverrideApiAuth-
Especifique como
truepara 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 propriedadeDefinitionBodyde um recursoAWS::Serverless::Apipara descrever sua API.nota
Quando você especificar
OverrideApiAuthcomotrue, AWS SAM substituirá seu autorizador global por quaisquer valores fornecidos paraApiKeyRequiredAuthorizer, ou.ResourcePolicyPortanto, 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
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
ResourcePolicy -
Configure a política de recursos para esse caminho em uma API.
Digite: ResourcePolicyStatement
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem 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