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 esta entidade no modelo do AWS Serverless Application Model (AWS SAM), use a seguinte sintaxe:
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
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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 modelo AWS SAM.Tipo: string
Obrigatório: não
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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_CREDENTIALSCompatibilidade CloudFormation: Essa propriedade é exclusiva do 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 paraApiKeyRequired,Authorizer, ouResourcePolicy. Portanto, pelo menos uma dessas propriedades também deve ser especificada durante o uso doOverrideApiAuth. Para ver um exemplo, consulte Substitua um autorizador global quando DefinitionBody for AWS::Serverless::Api for especificado.Tipo: booliano
Obrigatório: não
Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem CloudFormation equivalente.
-
ResourcePolicy -
Configure a política de recursos para esse caminho em uma API.
Tipo:: ResourcePolicyStatement
Obrigatório: Não
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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 função AWS Lambda, 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
Substitua um autorizador global quando DefinitionBody for AWS::Serverless::Api for especificado
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