ApiFunctionAuth - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

ApiFunctionAuth

Configura la autorización a nivel de evento para una API, una ruta y un método específicos.

Sintaxis

Para declarar esta entidad en tu plantilla AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis.

Propiedades

ApiKeyRequired

Requiere una clave de API para esta API, ruta y método.

Tipo: Booleano

Obligatorio: no

AWS CloudFormation compatibilidad: esta propiedad es exclusiva AWS SAM y no tiene un AWS CloudFormation equivalente.

AuthorizationScopes

Los ámbitos de autorización que se aplicarán a esta API, ruta y método.

Los ámbitos que especifique anularán los ámbitos aplicados por la propiedad de DefaultAuthorizer si los ha especificado.

Tipo: lista

Obligatorio: no

AWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente.

Authorizer

Authorizer para una función específica.

Si ha especificado un autorizador global para su recurso AWS::Serverless::Api, puede anular el autorizador configurando Authorizer como NONE. Para ver un ejemplo, consulte Anule un autorizador global para su API de REST de Amazon API Gateway.

nota

Si utiliza la propiedad DefinitionBody de un recurso de AWS::Serverless::Api para describir su API, debe usar OverrideApiAuth con Authorizer para anular su autorizador global. Para obtener más información, consulte OverrideApiAuth.

Valores válidos: AWS_IAMNONE, o el identificador lógico de cualquier autorizador definido en la AWS SAM plantilla.

Tipo: cadena

Obligatorio: no

AWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente.

InvokeRole

Especifica qué InvokeRole utilizar para la autorización de AWS_IAM.

Tipo: cadena

Obligatorio: no

Valor predeterminado: CALLER_CREDENTIALS

AWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente.

Notas adicionales: CALLER_CREDENTIALS asigna a arn:aws:iam::*:user/*, que utiliza las credenciales de la persona que llama para invocar el punto de conexión.

OverrideApiAuth

Especifique como true para anular la configuración del autorizador global de su recurso AWS::Serverless::Api. Esta propiedad solo es necesaria si usted especifica un autorizador global y utiliza la propiedad DefinitionBody de un recurso AWS::Serverless::Api para describir su API.

nota

Si especificas OverrideApiAuth comotrue, AWS SAM anulará tu autorizador global con los valores proporcionados para ApiKeyRequiredAuthorizer, o. ResourcePolicy Por lo tanto, al utilizar OverrideApiAuth también se debe especificar al menos una de estas propiedades. Para ver un ejemplo, consulte Anula un autorizador global cuando se especifique for DefinitionBody AWS::Serverless::Api .

Tipo: Booleano

Obligatorio: no

AWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente.

ResourcePolicy

Configura la política de recursos para esta ruta en una API.

Tipo: ResourcePolicyStatement

Obligatorio: no

AWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente.

Ejemplos

Autenticación de funciones

El siguiente ejemplo especifica la autorización a nivel de función.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

Anule un autorizador global para su API de REST de Amazon API Gateway

Puede especificar un autorizador global para su recurso AWS::Serverless::Api. A continuación se muestra un ejemplo que configura un autorizador predeterminado 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 anular el autorizador predeterminado de tu AWS Lambda función, puedes especificar as. Authorizer NONE A continuación, se muestra un ejemplo:

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

Anula un autorizador global cuando se especifique for DefinitionBody AWS::Serverless::Api

Al utilizar la propiedad DefinitionBody para describir el recurso AWS::Serverless::Api, el método de anulación anterior no funciona. A continuación se muestra un ejemplo del uso de la propiedad DefinitionBody para un 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 anular el autorizador global, utilice la propiedad OverrideApiAuth. El siguiente es un ejemplo que utiliza OverrideApiAuth para anular el autorizador global con el valor proporcionado 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