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.
YAML
ApiKeyRequired:BooleanAuthorizationScopes:ListAuthorizer:StringInvokeRole:StringOverrideApiAuth:BooleanResourcePolicy:ResourcePolicyStatement
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 de AWS SAM y no tiene un AWS CloudFormation equivalente. 
- 
                    Los ámbitos de autorización que se aplicarán a esta API, ruta y método. Los ámbitos que especifica anularán los ámbitos aplicados por la propiedad de DefaultAuthorizersi los ha especificado.Tipo: lista Obligatorio: no AWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente. 
- 
                    Authorizerpara una función específica.Si ha especificado un autorizador global para su recurso AWS::Serverless::Api, puede anular el autorizador configurandoAuthorizercomoNONE. Para ver un ejemplo, consulta Anule un autorizador global para su API de REST de Amazon API Gateway.notaSi utiliza la propiedad DefinitionBodyde un recurso deAWS::Serverless::Apipara describir su API, debe usarOverrideApiAuthconAuthorizerpara anular su autorizador global. Para obtener más información, consultaOverrideApiAuth.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é InvokeRoleutilizar para la autorización deAWS_IAM.Tipo: cadena Obligatorio: no Valor predeterminado: CALLER_CREDENTIALSAWS CloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un AWS CloudFormation equivalente. Notas adicionales: CALLER_CREDENTIALSasigna aarn:aws:iam::, que utiliza las credenciales de la persona que llama para invocar el punto de conexión.:<user>/
- OverrideApiAuth
- 
                    Especifica como truepara anular la configuración del autorizador global de su recursoAWS::Serverless::Api. Esta propiedad solo es necesaria si usted especifica un autorizador global y utiliza la propiedadDefinitionBodyde un recursoAWS::Serverless::Apipara describir su API.notaSi especificas OverrideApiAuthcomotrue, AWS SAM anulará tu autorizador global con los valores proporcionados paraApiKeyRequiredAuthorizer, o.ResourcePolicyPor lo tanto, al utilizarOverrideApiAuthtambién se debe especificar al menos una de estas propiedades. Para ver un ejemplo, consulta 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
Puedes 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 Authorizer especificarlo 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
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