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:
YAML
ApiKeyRequired:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy:ResourcePolicyStatement
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.
-
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
para una función específica.Si ha especificado un autorizador global para su recurso
AWS::Serverless::Api
, puede anular el autorizador configurandoAuthorizer
comoNONE
. 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 deAWS::Serverless::Api
para describir su API, debe usarOverrideApiAuth
conAuthorizer
para anular su autorizador global. Para obtener más información, consulteOverrideApiAuth
.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 deAWS_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 aarn: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 recursoAWS::Serverless::Api
. Esta propiedad solo es necesaria si usted especifica un autorizador global y utiliza la propiedadDefinitionBody
de un recursoAWS::Serverless::Api
para describir su API.nota
Cuando especifique
OverrideApiAuth
comotrue
, AWS SAM anulará su autorizador global con los valores proporcionados paraApiKeyRequired
,Authorizer
oResourcePolicy
. Por lo tanto, al utilizarOverrideApiAuth
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