Tras crear una función de Lambda, debe configurarla como un autorizador para su API. A continuación, configure su método para invocar su autorizador de Lambda y determinar si un intermediario puede invocar su método. Puede crear una función de Lambda en la misma cuenta desde la que creó la API o en una cuenta diferente.
Puede probar su autorizador de Lambda mediante las herramientas integradas en la consola de API Gateway o con Postman
Configuración de un autorizador de Lambda (consola)
El siguiente procedimiento muestra cómo crear un autorizador de Lambda en la consola de la API de REST de API Gateway. Para obtener más información sobre los distintos tipos de autorizadores de Lambda, consulte Elección de un tipo de autorizador de Lambda.
Configuración de un autorizador de Lambda REQUEST
-
Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway
. -
Seleccione una API y, a continuación, elija Autorizadores.
-
Elija Crear autorizador.
-
En Nombre del autorizador, ingrese un nombre para el autorizador.
-
En Tipo de autorizador, seleccione Lambda.
-
En Función de Lambda, seleccione la Región de AWS en la que creó la función de autorizador de Lambda y, a continuación, ingrese el nombre de la función.
-
Deje en blanco Rol de invocación de Lambda para permitir que la consola de la API de REST de API Gateway defina una política basada en recursos. La política concede permisos a API Gateway para invocar la función del autorizador de Lambda. También puede escribir el nombre de un rol de IAM para permitir que API Gateway invoque la función del autorizador de Lambda. Para ver un rol de ejemplo, consulte Crear un rol de IAM asumible.
-
En Carga de evento de Lambda, seleccione Solicitud.
-
En Tipo de origen de identidades, seleccione un tipo de parámetro. Los tipos de parámetro admitidos son
Header
,Query string
,Stage variable
yContext
. Para agregar más orígenes de identidades, elija Agregar parámetro. -
Para almacenar en caché la política de autorización generada por el autorizador, mantenga activado Almacenamiento en caché de la autorización. Cuando se activa el almacenamiento en caché de políticas, puede modificar el valor TTL. Si establece TTL en cero se desactivará el almacenamiento en caché de políticas.
Si habilita el almacenamiento en caché, su autorizador debe devolver una política que se aplique a todos los métodos a través de una API. Para aplicar una política específica de un método, utilice las variables de contexto
$context.path
y$context.httpMethod
. -
Elija Crear autorizador.
Después de crear el autorizador de Lambda, puede probarlo. El siguiente procedimiento muestra cómo probar el autorizador de Lambda.
Prueba de un autorizador de Lambda REQUEST
-
Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway
. -
Seleccione el nombre del autorizador.
-
En Probar autorizador, introduzca un valor para su origen de identidad.
Si utiliza la Ejemplo de función de Lambda con un autorizador REQUEST, haga lo siguiente:
-
Seleccione Encabezado e ingrese
headerValue1
y, a continuación, elija Agregar parámetro. -
En Tipo de origen de identidades, seleccione Cadena de consulta e ingrese
queryValue1
y, a continuación, elija Agregar parámetro. -
En Tipo de origen de identidades, seleccione Variable de etapa e ingrese
stageValue1
.
No puede modificar las variables de contexto para la invocación de la prueba, pero sí puede modificar la plantilla de eventos de prueba del Autorizador de API Gateway para la función de Lambda. A continuación, puede probar la función del autorizador de Lambda con variables de contexto modificadas. Para obtener más información, consulte Prueba de funciones de Lambda en la consola en la Guía para desarrolladores de AWS Lambda.
-
-
Elija Probar el autorizador.
Configuración de un autorizador de Lambda (AWS CLI)
El siguiente comando create-authorizer muestra cómo crear un autorizador de Lambda mediante la AWS CLI.
El siguiente comando create-authorizer permite crear un autorizador de REQUEST
, y utiliza el encabezado Authorizer
y la variable de contexto accountId
como orígenes de identidad:
aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Request_Custom_Authorizer' \ --type REQUEST \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization,context.accountId' \ --authorizer-result-ttl-in-seconds 300
Después de crear el autorizador de Lambda, puede probarlo. El siguiente comando test-invoke-authorizer permite probar un autorizador de Lambda:
aws apigateway test-invoke-authorizer --rest-api-id 1234123412 \ --authorizer-id efg1234 \ --headers Authorization='Value'
Configuración de un método para utilizar un autorizador de Lambda (consola)
Después de configurar el autorizador de Lambda, debe asociarlo a un método para la API.
Para configurar un método de API para que use un autorizador de Lambda
-
Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway
. -
Seleccione una API.
-
Elija Recursos y seleccione un método nuevo o elija un método existente.
-
En la pestaña Solicitud de método, en Configuración de solicitud de método, elija Editar.
-
En Autorizador, en el menú desplegable, seleccione el autorizador de Lambda que acaba de crear.
-
(Opcional) Si quiere pasar el token de autorización al backend, elija los encabezados de solicitud HTTP. Elija Agregar encabezado y, a continuación, agregue el nombre del encabezado de autorización. En Nombre, escriba el nombre de encabezado que coincida con el nombre de Origen del token que especificó al crear el autorizador de Lambda para la API. Este paso no se aplica a los autorizadores
REQUEST
. -
Seleccione Guardar.
-
Elija Deploy API (Implementar API) para implementar la API en una etapa. Para un autorizador
REQUEST
que utiliza variables de etapa, también debe definir las variables de etapa necesarias y especificar los valores en la página Etapas.
Configuración de un método para utilizar un autorizador de Lambda (AWS CLI)
Después de configurar el autorizador de Lambda, debe asociarlo a un método para la API. Puede crear un método nuevo o utilizar una operación de parche para asociar un autorizador a un método existente.
El siguiente comando put-method permite crear un método nuevo que utilice un autorizador de Lambda:
aws apigateway put-method --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --authorization-type CUSTOM \ --authorizer-id efg1234
El siguiente comando update-method permite actualizar un método existente para que utilice un autorizador de Lambda:
aws apigateway update-method \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="efg1234"