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 su plantilla de AWS Serverless Application Model (AWS SAM), use la siguiente sintaxis:

Propiedades

ApiKeyRequired

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

Tipo: Booleano

Obligatorio: no

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

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

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

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_IAM, NONE o el ID lógico de cualquier autorizador definido en su plantilla de AWS SAM.

Tipo: cadena

Obligatorio: no

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

InvokeRole

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

Tipo: cadena

Obligatorio: no

Valor predeterminado: CALLER_CREDENTIALS

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

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

Cuando especifique OverrideApiAuth como true, AWS SAM anulará su autorizador global con los valores proporcionados para ApiKeyRequired, Authorizer o ResourcePolicy. Por lo tanto, al utilizar OverrideApiAuth también se debe especificar al menos una de estas propiedades. Para ver un ejemplo, consulte Anule un autorizador global cuando se especifique DefinitionBody for AWS::Serverless::Api .

Tipo: Booleano

Obligatorio: no

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

ResourcePolicy

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

Tipo: ResourcePolicyStatement

Obligatorio: no

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

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 su función de AWS Lambda, puede especificar Authorizer como 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

Anule un autorizador global cuando se especifique DefinitionBody for 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