Conceptos generales de seguridad

1

Ciberseguridad para Desarrolladores: Protege tus Proyectos y Datos

2

Principales Riesgos de Seguridad en Empresas y Cómo Mitigarlos

3

Principios de Seguridad en AWS: Autenticación, Autorización y Auditoría

Funciona en mi local

4

Configuración de Webhooks y API REST con Go y ngrok

5

Creación de repositorios seguros y prevención de SQL Injection

6

Creación de Métodos Testeables con Mocks en Go

Introducción a DevSecOps

7

Implementación de DevSecOps con GitHub Actions para Desarrolladores

8

Automatización de Pruebas en Go con GitHub Actions

9

Pruebas Unitarias con Mocks en GitHub Actions

10

Gestión de Permisos y Presupuestos en AWS para Nuevas Arquitecturas

Seguridad en la arquitectura

11

Integración de GitHub Webhooks y AWS para Gestión de Commits

12

Gestión de Infraestructura como Código con Terraform en AWS

13

Infraestructura como Código con Terraform y Makefiles

14

Automatización de Infraestructura con Terraform: Roles y Políticas en AWS

15

Implementación de buckets y funciones Lambda con Terraform y AWS S3

16

Configuración de Bases de Datos en AWS con VPC y Seguridad IP

17

Configuración de Lambdas en VPC usando Terraform

18

Configuración de API Gateway para Lambdas en AWS

Evitando vulnerabilidades en el código

19

Configuración de Autenticación con Auth0 en Aplicaciones Web

20

Implementación de Authorizer con Auth0 en AWS Lambda

21

Conexión y Configuración de Lambda con AWS y Postgres

22

Configuración de Endpoints y Políticas en AWS con Terraform

23

Validación de Webhooks desde GitHub usando User Agent

24

Validación de Webhooks de GitHub con AWS Secrets Manager

Controles de seguridad sobre datos

25

Seguridad de Datos y Certificados SSL en AWS

26

Protección de Datos en Reposo con AWS KMS

Monitoring y alertas

27

Creación de un Sistema de Logs en Go para Observabilidad

28

Monitoreo y Auditoría en AWS con CloudWatch y CloudTrail

29

Creación de Alertas en AWS CloudWatch

CORS y cierre

30

Manejo de CORS en Desarrollo Web Seguro

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Implementación de Authorizer con Auth0 en AWS Lambda

20/30
Recursos

¿Cómo configuramos Auth0 para autorizar aplicaciones?

Antes de profundizar en la implementación del autorizer, asegúrate de que tu configuración de Auth0 esté correctamente establecida. En la sección de Applications de Auth0, verifica que tengas dos aplicaciones: una para la web y otra que se genera automáticamente al crear el API. Asegúrate de que la aplicación web sea regular y que el URL de callback redirija a Google. Además, las conexiones deben estar activadas para la base de datos que creaste con tus usuarios.

¿Cómo ajustar la configuración de APIs en Auth0?

En la pestaña de APIs, selecciona tu API (por ejemplo, MyCourseAPI) y revisa los settings. Prestamos atención al identifier, que usarás para las solicitudes de tokens. Importante: asegúrate de que la API esté correctamente apuntando a tu aplicación principal (MyApp) y desactiva la aplicación de prueba, si es necesario.

¿Cómo implementamos un Lambda Authorizer?

Usaremos un Lambda Authorizer para gestionar la autorización de acceso a nuestro servicio. El authorizer recibe solicitudes distintas y debe devolver una respuesta adecuada según lo configurado: aceptando o denegando acceso.

¿Cuál es la estructura de nuestro autorizer?

  1. Carpeta y Archivo Principal: Crea una carpeta para el autorizer y añade un archivo main para la lógica principal.
  2. Método Main: Este método principal gestionará la solicitud y determinará si acepta o deniega basándose en el token.
  3. Métodos de Respuesta: Implementa métodos para aceptar o denegar requests, devolviendo una respuesta de política que autoriza o bloquea acceso.

¿Qué lógica se implementa para getMetrics?

Añadimos una función handler para recibir y procesar eventos. Utilizamos el tipo de evento de API Gateway V2 Custom Authorizer. Este incluye rutas y permite validar y autenticar tokens usando la librería GoJose, facilitando la validación de JWTs.

Implementación del código de autorizer

// Handler para autorizer
func handler(event events.APIGatewayV2CustomAuthorizerIAMContextRequest) (events.APIGatewayV2CustomAuthorizerIAMContextResponse, error) {
    // Obteniendo la ruta del evento
    path := event.RequestContext.HTTP.Path

    // Validando el token
    authToken := extractAuthToken(event)
    if isValidToken(authToken) {
        return allowRequest(path), nil
    }

    return denyRequest("Invalid auth token"), nil
}

¿Cómo configuramos y desplegamos con Terraform?

Con el autorizer listo, seguimos con la creación y configuración de un archivo make para facilitar la compilación y carga de nuestro binario a AWS S3.

  1. Makefile y Compilación: Copia la configuración del make file existente y ajusta el nombre para authorizer.
  2. Sincronización de dependencias: Usa go mod vendor y go mod download para asegurarte de que todas las dependencias estén actualizadas y disponibles.
  3. Subida a AWS S3: Usa make publish una vez que la compilación esté lista.

¿Cómo finalizamos la integración en AWS?

Para completar la integración y configuración:

  1. Crear y configurar Lambda con Terraform: Con terraform plan revisa el plan de despliegue y luego lo ejecutas con terraform apply.
  2. Conectar con API Gateway: Una vez desplegado, ve a AWS API Gateway y asocia el authorizer a un endpoint (como getMetrics).

¿Cómo generamos y validamos un token de acceso?

Genera un token de acceso utilizando tu client ID y dominio de aplicación definido en Auth0. Valida este token usando una herramienta como Postman para send requests a tus endpoints protegidos, asegurando que la autenticación funciona correctamente.

¿Qué se debe tener en cuenta al gestionar errores y mensajes?

Si un token es inválido o falta, asegura que tus mensajes de error sean claros y comprensibles, facilitando tanto depuración como el uso de tus APIs a los desarrolladores.

Aportes 0

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?