Uso de API Keys en Serverless Framework y API Gateway

Clase 14 de 24Curso Avanzado de Serverless Framework en AWS

Resumen

¿Cómo usar API Keys en un proyecto Serverless con seguridad?

Implementar técnicas de autenticación robustas es fundamental a la hora de manejar aplicaciones que interactúan con servicios API. Una de estas técnicas es el uso de las API keys, que son llaves alfanuméricas utilizadas para validar si un usuario puede o no acceder a un recurso. Esta clase explora cómo configurar y utilizar API keys en proyectos que emplean el Serverless Framework.

¿Cómo definir un endpoint como privado en Serverless?

Para garantizar que solo los usuarios autorizados puedan acceder a un recurso, es necesario configurar el endpoint como privado. En Serverless Framework, esta configuración se realiza de la siguiente manera:

functions:
  getUsers:
    handler: handler.getUsers
    events:
      - http:
          path: users
          method: get
          private: true

Al establecer la propiedad private en true, se indica que cada acceso al endpoint debe pasar por una validación con el API key.

¿Cómo configurar API keys en Serverless Framework?

Para activar el uso de API keys, primero, debes definirlos en la sección del provider dentro del serverless.yml. Aquí es donde se asocia el API Gateway con las API keys necesarias.

provider:
  name: aws
  apiGateway:
    apiKeys:
      - nombreDeMiAPIKey

Una vez configurado, al desplegar con Serverless Framework, se asegura de que solo las peticiones que incluyan el API key válido podrán acceder a los recursos privados que has establecido.

Uso de Git y CI/CD para despliegue automático

La automatización en los procesos de desarrollo es crucial para ahorrar tiempo y minimizar errores. Utilizando herramientas como Git y servicios de CI/CD, como GitHub Actions, puedes implementar cambios automáticamente. Simplemente realiza un commit y un push hacia tu repositorio, y tu configuración hará el resto.

¿Qué ocurrirá tras el despliegue?

Luego de haber realizado un push, GitHub Actions se encargará de verificar los cambios y ejecutar los flujos de construcción y prueba, que incluyen:

  • Validación de que los endpoints ahora requieren API keys.
  • Automatización de la configuración de las lambda layers.
  • Despliegue de los cambios en las funciones de AWS Lambda y sus eventos asociados.

Uso de API keys en Postman

Para verificar que la autenticación con API keys funciona correctamente, puedes utilizar Postman para realizar peticiones a tu API. Debes asegurarte de incluir el header correcto en tus peticiones:

x-api-key: <tu_valor_de_api_key>

¿Qué ocurre si no se incluye el API key?

Si intentas acceder a un recurso sin el API key correcto, obtendrás una respuesta de error 403 Forbidden. Esto indica que el acceso está restringido hasta que se valide con una API key autorizada.

Procedimientos adicionales y automatización

Serverless Framework, junto al uso de API keys, permite una automatización casi total en la protección y administración de tus endpoints. Sin embargo, también es posible realizar ciertas configuraciones manuales si la situación lo amerita. Para una configuración manual en la consola de AWS:

  1. Accede a la sección de API Gateway.
  2. Elige el API correspondiente.
  3. Administra las API keys: puedes importar o crear nuevas según tus necesidades.

La integración de API keys y las características automáticas de Serverless Framework ofrecen una solución eficaz y eficiente para manejar los requerimientos de seguridad en aplicaciones serverless. Esta herramienta no solo facilita la gestión de acceso, sino que también asegura una implementación centralizada y controlada de tus servicios.